abook-0.6.1/0000755000175000017500000000000012604110463011000 5ustar yugyugabook-0.6.1/ui.c0000644000175000017500000003675612604110441011576 0ustar yugyug /* * $Id$ * * by JH * * Copyright (C) Jaakko Heinonen */ #include #include #include #include #include #include #include #include "abook.h" #include #include "ui.h" #include "edit.h" #include "database.h" #include "gettext.h" #include "list.h" #include "misc.h" #include "options.h" #include "filter.h" #include "xmalloc.h" #include "color.h" #include #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_SYS_IOCTL_H # include #endif #include "abook_rl.h" /* * external variables */ extern char *datafile; extern bool alternative_datafile; /* * internal variables */ static bool ui_initialized = FALSE; static bool should_resize = FALSE; static bool can_resize = FALSE; static struct timeval last_click_time; static int double_click_interval = 200; /* maximum time in milliseconds */ static WINDOW *top = NULL, *bottom = NULL; static void init_windows() { top = newwin(LIST_TOP - 1, COLS, 0, 0); bottom = newwin(LINES - LIST_BOTTOM, COLS, LIST_BOTTOM, 0); } static void free_windows() { delwin(top); delwin(bottom); } #ifdef SIGWINCH static void resize_abook() { #ifdef TIOCGWINSZ struct winsize winsz; ioctl(0, TIOCGWINSZ, &winsz); #ifdef DEBUG if(winsz.ws_col >= MIN_COLS && winsz.ws_row >= MIN_LINES) { fprintf(stderr, "Warning: COLS=%d, LINES=%d\n", winsz.ws_col, winsz.ws_row); } #endif if(winsz.ws_col >= MIN_COLS && winsz.ws_row >= MIN_LINES) { #ifdef HAVE_RESIZETERM resizeterm(winsz.ws_row, winsz.ws_col); #else COLS = winsz.ws_col; LINES = winsz.ws_row; #endif } should_resize = FALSE; close_list(); /* we need to recreate windows */ init_list(); free_windows(); init_windows(); refresh_screen(); refresh(); #endif /* TIOCGWINSZ */ } static void win_changed(int i) { if(can_resize) resize_abook(); else should_resize = TRUE; } #endif /* SIGWINCH */ int is_ui_initialized() { return ui_initialized; } void ui_init_curses() { if(!is_ui_initialized()) initscr(); cbreak(); noecho(); nonl(); intrflush(stdscr, FALSE); if(opt_get_bool(BOOL_USE_MOUSE)) { mouseinterval(0); timerclear(&last_click_time); ui_enable_mouse(TRUE); } keypad(stdscr, TRUE); if(opt_get_bool(BOOL_USE_COLORS) && has_colors()) { start_color(); use_default_colors(); ui_init_color_pairs_user(); } } void ui_enable_mouse(bool enabled) { mmask_t mask; if(enabled) { mask = BUTTON1_CLICKED | BUTTON4_PRESSED; #if NCURSES_MOUSE_VERSION == 2 mask |= BUTTON5_PRESSED; #endif } else { mask = 0; } mousemask(mask, NULL); } /** Check the time elapsed since last click and tell if it should be * interpreted as a double click */ static bool was_double_click() { struct timeval click_time, click_diff, maxdiff; maxdiff.tv_sec = double_click_interval / 1000; maxdiff.tv_usec = (double_click_interval % 1000)*1000; gettimeofday(&click_time, NULL); timersub(&click_time, &last_click_time, &click_diff); last_click_time = click_time; return !timercmp(&click_diff, &maxdiff, >); } #define CHECK_COLOR_NAME(value, name, DEFNAME) \ if(!strcmp((name), (value))){ \ return DEFNAME; \ } short opt_color_to_color(enum str_opts enum_name) { char* name = opt_get_str(enum_name); CHECK_COLOR_NAME(name, "default", COLOR_DEFAULT) else CHECK_COLOR_NAME(name, "black", COLOR_BLACK) else CHECK_COLOR_NAME(name, "red", COLOR_RED) else CHECK_COLOR_NAME(name, "green", COLOR_GREEN) else CHECK_COLOR_NAME(name, "yellow", COLOR_YELLOW) else CHECK_COLOR_NAME(name, "blue", COLOR_BLUE) else CHECK_COLOR_NAME(name, "magenta", COLOR_MAGENTA) else CHECK_COLOR_NAME(name, "cyan", COLOR_CYAN) else CHECK_COLOR_NAME(name, "white", COLOR_WHITE) else return COLOR_DEFAULT; } void ui_init_color_pairs_user() { init_pair(CP_HEADER, opt_color_to_color(STR_COLOR_HEADER_FG), opt_color_to_color(STR_COLOR_HEADER_BG)); init_pair(CP_FOOTER, opt_color_to_color(STR_COLOR_FOOTER_FG), opt_color_to_color(STR_COLOR_FOOTER_BG)); init_pair(CP_LIST_EVEN, opt_color_to_color(STR_COLOR_LIST_EVEN_FG), opt_color_to_color(STR_COLOR_LIST_EVEN_BG)); init_pair(CP_LIST_ODD, opt_color_to_color(STR_COLOR_LIST_ODD_FG), opt_color_to_color(STR_COLOR_LIST_ODD_BG)); init_pair(CP_LIST_HEADER, opt_color_to_color(STR_COLOR_LIST_HEADER_FG), opt_color_to_color(STR_COLOR_LIST_HEADER_BG)); init_pair(CP_LIST_HIGHLIGHT, opt_color_to_color(STR_COLOR_LIST_HIGHLIGHT_FG), opt_color_to_color(STR_COLOR_LIST_HIGHLIGHT_BG)); init_pair(CP_TAB_BORDER, opt_color_to_color(STR_COLOR_TAB_BORDER_FG), opt_color_to_color(STR_COLOR_TAB_BORDER_BG)); init_pair(CP_TAB_LABEL, opt_color_to_color(STR_COLOR_TAB_LABEL_FG), opt_color_to_color(STR_COLOR_TAB_LABEL_BG)); init_pair(CP_FIELD_NAME, opt_color_to_color(STR_COLOR_FIELD_NAME_FG), opt_color_to_color(STR_COLOR_FIELD_NAME_BG)); init_pair(CP_FIELD_VALUE, opt_color_to_color(STR_COLOR_FIELD_VALUE_FG), opt_color_to_color(STR_COLOR_FIELD_VALUE_BG)); } int init_ui() { ui_init_curses(); #ifdef DEBUG fprintf(stderr, "init_abook():\n"); fprintf(stderr, " COLS = %d, LINES = %d\n", COLS, LINES); #endif if( LINES < MIN_LINES || COLS < MIN_COLS ) { clear(); refresh(); endwin(); fprintf(stderr, _("Your terminal size is %dx%d\n"), COLS, LINES); fprintf(stderr, _("Terminal is too small. Minimum terminal " "size for abook is " "%dx%d\n"), MIN_COLS, MIN_LINES); return 1; } init_list(); init_windows(); ui_initialized = TRUE; #ifdef SIGWINCH signal(SIGWINCH, win_changed); #endif return 0; } void close_ui() { close_list(); free_windows(); clear(); refresh(); endwin(); ui_initialized = FALSE; } void headerline(const char *str) { werase(top); wattrset(top, COLOR_PAIR(CP_HEADER)); mvwhline(top, 0, 0, ' ', COLS); mvwhline(top, 1, 0, UI_HLINE_CHAR, COLS); mvwprintw(top, 0, 0, "%s | %s", PACKAGE " " VERSION, str); refresh(); wrefresh(top); } void refresh_screen() { #ifdef SIGWINCH if(should_resize) { resize_abook(); return; } #endif clear(); refresh_statusline(); headerline(gettext(MAIN_HELPLINE)); list_headerline(); refresh_list(); } int statusline_msg(const char *msg) { int c; clear_statusline(); statusline_addstr(msg); c = getch(); #ifdef DEBUG fprintf(stderr, "statusline_msg(\"%s\")\n", msg); #endif clear_statusline(); return c; } void statusline_addstr(const char *str) { mvwaddstr(bottom, 1, 0, str); refresh(); wrefresh(bottom); } /* Same as statusline_addstr(), but hilight "" sequences if the terminal * supports it */ static void statusline_addhlstr(const char *str) { #if defined(A_BOLD) && defined(A_NORMAL) && defined(A_DIM) const char *p = str, *start = str; char *tmp; int pos = 0; while(1) { if(!*p || strchr("<>", *p)) { if(p - start > 0) { wattrset(bottom, (*p == '>') ? A_BOLD : A_NORMAL); tmp = xstrndup(start, p - start); mvwaddstr(bottom, 1, pos, tmp); pos += strwidth(tmp); free(tmp); } if(*p) { start = p + 1; /* show tag markers */ wattrset(bottom, A_DIM); mvwaddch(bottom, 1, pos++, *p); } } if(!*p) { wattrset(bottom, A_NORMAL); break; } p++; } #else mvwaddstr(bottom, 1, 0, str); #endif refresh(); wrefresh(bottom); } int statusline_askchoice(const char *msg, const char *choices, short dflt) { char *s; int ch; assert((dflt >= 0) && (dflt <= strlen(choices))); if(dflt) { s = strdup_printf("%s [%c]", msg, choices[dflt - 1]); statusline_addhlstr(s); free(s); } else statusline_addhlstr(msg); while(1) { ch = tolower(getch()); if(ch == 7) /* ctrl+G */ return 0; if(dflt && (ch == '\r')) /* default choice */ return dflt; if((s = strchr(choices, ch))) return (s - choices + 1); } } char * ui_readline(const char *prompt, char *s, size_t limit, bool use_completion) { int y, x; char *ret; mvwaddstr(bottom, 1, 0, prompt); getyx(bottom, y, x); ret = abook_readline(bottom, y, x, s, use_completion); if(ret) { strtrim(ret); if(strlen(ret) > limit && limit > 0) ret[limit] = '\0'; } return ret; } int statusline_ask_boolean(const char *msg, int def) { int ret; char *msg2 = strconcat(msg, def ? _(" (Y/n)?") : _(" (y/N)?"), NULL); char ch; statusline_addstr(msg2); free(msg2); ch = tolower(getch()); if(ch == *(S_("keybinding for no|n"))) ret = FALSE; else if(ch == *(S_("keybinding for yes|y"))) ret = TRUE; else ret = def; clear_statusline(); return ret; } void refresh_statusline() { werase(bottom); wattrset(bottom, COLOR_PAIR(CP_FOOTER)); mvwhline(bottom, 0, 0, UI_HLINE_CHAR, COLS); refresh(); wrefresh(bottom); } char * ask_filename(const char *prompt) { char *buf = NULL; clear_statusline(); buf = ui_readline(prompt, NULL, -1, 1); return buf; } void clear_statusline() { wmove(bottom, 1, 0); wclrtoeol(bottom); wrefresh(bottom); refresh(); } /* * help */ #include "help.h" void display_help(int help) { int i; char **tbl; WINDOW *helpw; switch(help) { case HELP_MAIN: tbl = mainhelp; break; case HELP_EDITOR: tbl = editorhelp; break; default:return; } helpw = newwin(LINES - 5, COLS - 6, 2, 3); erase(); headerline(_("help")); for(i = 0; tbl[i] != NULL; i++) { waddstr(helpw, gettext(tbl[i])); if( (!((i + 1) % (LINES - 8))) || (tbl[i + 1] == NULL) ) { refresh(); wrefresh(helpw); refresh_statusline(); if(statusline_msg(_("Press any key to continue...")) == 'q') break; wclear(helpw); } } clear_statusline(); delwin(helpw); } /* * end of help */ extern char *selected; void get_commands() { int ch; for(;;) { can_resize = TRUE; /* it's safe to resize now */ if(!opt_get_bool(BOOL_SHOW_CURSOR)) hide_cursor(); if(should_resize) refresh_screen(); ch = getch(); if(!opt_get_bool(BOOL_SHOW_CURSOR)) show_cursor(); can_resize = FALSE; /* it's not safe to resize anymore */ if(ch == KEY_MOUSE) { MEVENT event; bool double_clicked = was_double_click(); if(getmouse(&event) == OK) { if(event.bstate & BUTTON1_CLICKED || event.bstate & BUTTON1_DOUBLE_CLICKED) { if(event.y == 0) { return; } list_set_curitem(event.y + list_get_firstitem() - LIST_TOP); if(double_clicked) { edit_item(-1); } else { refresh_list(); } } else if(event.bstate & BUTTON4_PRESSED) { scroll_list_up(); } else if(event.bstate & BUTTON5_PRESSED) { scroll_list_down(); } } } switch(ch) { case 'q': return; case 'Q': quit_abook(QUIT_DONTSAVE); break; case 'P': print_stderr(selected_items() ? -1 : list_get_curitem()); return; case '?': display_help(HELP_MAIN); refresh_screen(); break; case 'a': add_item(); break; case '\r': edit_item(-1); break; case KEY_DC: case 'd': case 'r': ui_remove_items(); break; case 'M': ui_merge_items(); break; case 'D': duplicate_item(); break; case 'U': ui_remove_duplicates(); break; case 12: refresh_screen(); break; case 'k': case KEY_UP: scroll_up(); break; case 'j': case KEY_DOWN: scroll_down(); break; case 'K': case KEY_PPAGE: page_up(); break; case 'J': case KEY_NPAGE: page_down(); break; case 'g': case KEY_HOME: goto_home(); break; case 'G': case KEY_END: goto_end(); break; case 'w': save_database(); break; case 'l': ui_read_database(); break; case 'i': import_database(); break; case 'e': export_database(); break; case 'C': ui_clear_database(); break; case 'o': ui_open_datafile(); break; case 's': sort_by_field("name");break; case 'S': sort_surname(); break; case 'F': sort_by_field(NULL); break; case '/': ui_find(0); break; case 'n': case '\\': ui_find(1); break; case ' ': if(list_get_curitem() >= 0) { list_invert_curitem_selection(); ui_print_number_of_items(); refresh_list(); } break; case '+': select_all(); refresh_list(); break; case '-': select_none(); refresh_list(); break; case '*': invert_selection(); refresh_list(); break; case 'A': move_curitem(MOVE_ITEM_UP); break; case 'Z': move_curitem(MOVE_ITEM_DOWN); break; case 'm': launch_mutt(selected_items() ? -1 : list_get_curitem()); refresh_screen(); break; case 'p': ui_print_database(); break; case 'v': launch_wwwbrowser(list_get_curitem()); refresh_screen(); break; } } } void ui_remove_items() { if(list_is_empty()) return; if(statusline_ask_boolean(_("Remove selected item(s)"), FALSE)) remove_selected_items(); clear_statusline(); refresh_list(); } void ui_merge_items() { if(statusline_ask_boolean(_("Merge selected items"), FALSE)) merge_selected_items(); clear_statusline(); refresh_list(); } void ui_remove_duplicates() { if(statusline_ask_boolean(_("Remove duplicates"), FALSE)) remove_duplicates(); clear_statusline(); refresh_list(); } void ui_clear_database() { if(statusline_ask_boolean(_("Clear WHOLE database"), FALSE)) { close_database(); refresh_list(); } } void ui_find(int next) { int item = -1; static char findstr[MAX_FIELD_LEN]; int search_fields[] = {NAME, EMAIL, NICK, -1}; clear_statusline(); if(next) { if(!*findstr) return; } else { char *s; s = ui_readline("/", findstr, MAX_FIELD_LEN - 1, 0); refresh_screen(); if(s == NULL) { return; /* user cancelled (ctrl-G) */ } else { strncpy(findstr, s, MAX_FIELD_LEN); free(s); } } if( (item = find_item(findstr, list_get_curitem() + !!next, search_fields)) < 0 && (item = find_item(findstr, 0, search_fields)) >= 0) statusline_addstr(_("Search hit bottom, continuing at top")); if(item >= 0) { list_set_curitem(item); refresh_list(); } } void ui_print_number_of_items() { char *str = strdup_printf(" " "|%3d/%3d", selected_items(), db_n_items()); attrset(COLOR_PAIR(CP_HEADER)); mvaddstr(0, COLS-strlen(str), str); free(str); } void ui_read_database() { char *msg; if(!list_is_empty()) { msg = strdup_printf(_("Your current data will be lost - " "Press '%c' to continue"), *(S_("keybinding for yes|y"))); if(!statusline_ask_boolean(msg, FALSE)) { free(msg); return; } free(msg); } load_database(datafile); refresh_list(); } void ui_print_database() { FILE *handle; char *command = opt_get_str(STR_PRINT_COMMAND); int mode; if(list_is_empty()) return; switch(statusline_askchoice(_("Print ll, print elected, or ancel?"), S_("keybindings:all/selected/cancel|asc"), 3)) { case 1: mode = ENUM_ALL; break; case 2: if( !selected_items() ) { statusline_msg(_("No selected items")); return; } mode = ENUM_SELECTED; break; default: refresh_screen(); return; } clear_statusline(); if( ! *command || (handle = popen(command, "w")) == NULL) return; fexport("text", handle, mode); pclose(handle); } void ui_open_datafile() { char *filename; filename = ask_filename(_("File to open: ")); if(!filename || ! *filename) { free(filename); refresh_screen(); return; } if(opt_get_bool(BOOL_AUTOSAVE)) save_database(); else if(statusline_ask_boolean(_("Save current database"), FALSE)) save_database(); close_database(); load_database(filename); if(list_is_empty()) { statusline_msg(_("Sorry, the specified file appears not to be a valid abook addressbook")); load_database(datafile); } else { free(datafile); datafile = xstrdup(filename); } refresh_screen(); free(filename); alternative_datafile = TRUE; } abook-0.6.1/edit.c0000644000175000017500000004115212604110441012070 0ustar yugyug /* * $Id$ * * by JH * * Copyright (C) Jaakko Heinonen */ #include #include #include #include #include "abook_curses.h" #include "ui.h" #include "abook.h" #include "database.h" #include "gettext.h" #include "list.h" #include "edit.h" #include "misc.h" #include "views.h" #include "xmalloc.h" #include "color.h" #ifdef HAVE_CONFIG_H # include "config.h" #endif #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) # include #endif static void locale_date(char *str, size_t str_len, int year, int month, int day); /* * some extern variables */ extern int views_count; WINDOW *editw; static void editor_tab(const int tab) { int i, j; int x_pos = 2; /* current x pos */ char *tab_name; wattrset(editw, COLOR_PAIR(CP_TAB_BORDER)); mvwhline(editw, TABLINE + 1, 0, UI_HLINE_CHAR, EDITW_COLS); for(i = 0; i < views_count; i++) { view_info(i, &tab_name, NULL); int width = strwidth(tab_name) + 5; if(x_pos + width + 1 > EDITW_COLS) { statusline_addstr(_("Tab name too wide for screen")); break; } mvwaddch(editw, TABLINE + 1, x_pos, UI_TEE_CHAR); mvwaddch(editw, TABLINE + 1, x_pos + width - 2, UI_TEE_CHAR); mvwaddch(editw, TABLINE, x_pos, UI_ULCORNER_CHAR); mvwaddch(editw, TABLINE, x_pos + 1, UI_LBOXLINE_CHAR); wattrset(editw, COLOR_PAIR(CP_TAB_LABEL)); mvwaddstr(editw, TABLINE, x_pos + 2, tab_name); wattrset(editw, COLOR_PAIR(CP_TAB_BORDER)); mvwaddch(editw, TABLINE, x_pos + width - 3, UI_RBOXLINE_CHAR); mvwaddch(editw, TABLINE, x_pos + width - 2, UI_URCORNER_CHAR); if(i == tab) { mvwaddch(editw, TABLINE + 1, x_pos, UI_LRCORNER_CHAR); for(j = 0; j < width - 3; j++) mvwaddstr(editw, TABLINE + 1, x_pos + j + 1, " "); mvwaddch(editw, TABLINE + 1, x_pos + width - 2, UI_LLCORNER_CHAR); } x_pos += width; } } void get_first_email(char *str, int item) { char *tmp, *emails = db_email_get(item); if(!*emails) { *str = 0; return; } strncpy(str, emails, MAX_EMAIL_LEN); free(emails); if( (tmp = strchr(str, ',')) ) *tmp = 0; else str[MAX_EMAIL_LEN - 1] = 0; } /* This only rolls emails from the 'email' field, not emails from any * field of type FIELD_EMAILS. * TODO: expand to ask for which field to roll if several are present? */ void roll_emails(int item, enum rotate_dir dir) { abook_list *emails = csv_to_abook_list(db_fget(item, EMAIL)); if(!emails) return; free(db_fget(item, EMAIL)); abook_list_rotate(&emails, dir); db_fput(item, EMAIL, abook_list_to_csv(emails)); abook_list_free(&emails); } static void init_editor() { clear(); editw = newwin(EDITW_LINES, EDITW_COLS, EDITW_TOP, EDITW_X); notimeout(editw, TRUE); /* handling of escape key */ refresh_statusline(); } enum { BACKUP_ITEM, RESTORE_ITEM, CLEAR_UNDO }; static int edit_undo(int item, int mode) { static list_item backup = NULL; static int backed_up_item = -1; switch(mode) { case CLEAR_UNDO: if(backup) { item_empty(backup); item_free(&backup); } break; case BACKUP_ITEM: if(backup) { item_empty(backup); item_free(&backup); } backup = item_create(); item_duplicate(backup, db_item_get(item)); backed_up_item = item; break; case RESTORE_ITEM: if(backup) { item_empty(db_item_get(backed_up_item)); item_copy(db_item_get(backed_up_item), backup); item_free(&backup); return backed_up_item; } break; default: assert(0); } return item; } static void close_editor() { edit_undo(-1, CLEAR_UNDO); delwin(editw); refresh_screen(); } static void print_editor_header(int item) { char *header; char email[MAX_EMAIL_LEN]; if((header = xmalloc(EDITW_COLS)) == NULL) return; get_first_email(email, item); if(*email) snprintf(header, EDITW_COLS, "%s <%s>", db_name_get(item), email); else snprintf(header, EDITW_COLS, "%s", db_name_get(item)); wattrset(editw, COLOR_PAIR(CP_TAB_LABEL)); mvwaddstr(editw, 0, (EDITW_COLS - strwidth(header)) / 2, header); free(header); } static void editor_print_data(int tab, int item) { int j = 1, nb; int y, x; abook_field_list *cur; char *str; view_info(tab, NULL, &cur); for(; cur; cur = cur->next) { if(j > 1) { getyx(editw, y, x); y++; } else y = FIELDS_START_Y; wattrset(editw, COLOR_PAIR(CP_FIELD_NAME)); mvwprintw(editw, y, FIELDS_START_X, "%c - ", (j < 10) ? '0' + j : 'A' + j - 10); mvwaddnstr(editw, y, FIELDS_START_X + 4, cur->field->name, bytes2width(cur->field->name, FIELDNAME_MAX_WIDTH)); mvwaddch(editw, y, TAB_COLON_POS, ':'); wattrset(editw, COLOR_PAIR(CP_FIELD_VALUE)); if((cur->field->type == FIELD_EMAILS) || (cur->field->type == FIELD_LIST)) { abook_list *emails, *e; find_field_number(cur->field->key, &nb); emails = csv_to_abook_list(db_fget_byid(item, nb)); for(e = emails; e; e = e->next) { getyx(editw, y, x); mvwaddnstr(editw, y + 1, TAB_COLON_POS + 2, e->data, bytes2width(e->data, FIELD_MAX_WIDTH)); mvwaddch(editw, y + 1, TAB_COLON_POS, UI_VLINE_CHAR); } if(emails) { mvwaddch(editw, y + 2, TAB_COLON_POS, UI_LLCORNER_CHAR); mvwhline(editw, y + 2, TAB_COLON_POS + 1, UI_HLINE_CHAR, EDITW_COLS - TAB_COLON_POS - 2); } abook_list_free(&emails); } else if(cur->field->type == FIELD_DATE) { int day, month, year; char buf[64]; find_field_number(cur->field->key, &nb); str = db_fget_byid(item, nb); if(parse_date_string(str, &day, &month, &year)) { /* put locale representation of date in buf */ locale_date(buf, sizeof(buf), year, month, day); mvwaddnstr(editw, y, TAB_COLON_POS + 2, buf, bytes2width(buf, FIELD_MAX_WIDTH)); } } else { find_field_number(cur->field->key, &nb); str = safe_str(db_fget_byid(item, nb)); mvwaddnstr(editw, y, TAB_COLON_POS + 2, str, bytes2width(str, FIELD_MAX_WIDTH)); } j++; } } /* * function: change_field * * parameters: * (char *msg) * message to display as a prompt * (char **field) * a pointer to a pointer which will point a new string. if the latter * pointer != NULL it will be freed (if user doesn't cancel) * (size_t max_len) * maximum length of field to read from user * * returns (int) * a nonzero value if user has cancelled and zero if user has typed a * valid string */ static int change_field(char *msg, char **field, size_t max_len) { char *old; int ret = 0; old = *field; *field = ui_readline(msg, old, max_len - 1, 0); if(*field) { xfree(old); if(!**field) xfree(*field); } else { *field = old; ret = 1; } clear_statusline(); refresh_statusline(); return ret; } static int change_name_field(char *msg, char **field, size_t max_len) { char *tmp; int ret; tmp = xstrdup(*field); ret = change_field(msg, field, max_len); if(*field == NULL || ! **field) { xfree(*field); *field = xstrdup(tmp); } xfree(tmp); return ret; } static void fix_email_str(char *str) { for(; *str; str++) *str = *str == ',' ? '_' : *str; } static void edit_list(int item, int nb, int isemail) { char *field, *msg, *keys; abook_list *list, *e; int choice = 1, elem_count; list = csv_to_abook_list(db_fget_byid(item, nb)); for(e = list, elem_count = 0; e; e = e->next, elem_count++) ; if(elem_count) { keys = xstrndup(S_("keybindings_new_123456789|n123456789"), elem_count + 1); msg = strdup_printf(_("Choose %s to modify (<1>%s%c%s%s."), isemail ? _("email") : _("item"), (elem_count > 1) ? "-<" : "", (elem_count > 1) ? '0' + elem_count : ')', (elem_count > 1) ? ">)" : "", (elem_count < MAX_LIST_ITEMS) ? _(" or ew") : "" ); choice = statusline_askchoice( msg, keys, (elem_count < MAX_LIST_ITEMS) ? 1 : 2 ); free(keys); free(msg); } if(choice == 0) return; field = (choice > 1) ? xstrdup(abook_list_get(list, choice - 2)->data) : NULL; if(change_field(isemail ? _("E-mail: ") : _("Item: "), &field, MAX_EMAIL_LEN)) return; /* user cancelled ( C-g ) */ /* TODO if list item contains commas, should use quotes instead */ if(field) fix_email_str(field); if(choice == 1) abook_list_append(&list, field); else abook_list_replace(&list, choice - 2, field); if(field) xfree(field); field = abook_list_to_csv(list); db_fput_byid(item, nb, field ? field : xstrdup("")); abook_list_free(&list); } /* * available %-sequences: * - %y, %Y, %m, %M, %d, %D represent year, month, and day * (the uppercase version telling to fill with leading zeros * if necessary) * - %I for ISO 8601 representation */ static size_t format_date(char *str, size_t str_len, char *fmt, int year, int month, int day) { char *s = str; size_t len; while(*fmt && (s - str + 1 < str_len)) { if(*fmt != '%') { *s++ = *fmt++; continue; } len = str_len - (str - s); switch(*++fmt) { case 'y': s += snprintf(s, len, "%d", year); break; case 'Y': s += snprintf(s, len, "%04d", year); break; case 'm': s += snprintf(s, len, "%d", month); break; case 'M': s += snprintf(s, len, "%02d", month); break; case 'd': s += snprintf(s, len, "%d", day); break; case 'D': s += snprintf(s, len, "%02d", day); break; case 'I': s += format_date(s, len, year ? "%Y-%M-%D" : "--%M-%D", year, month, day); break; case '%': *s++ = '%'; break; default: *s++ = '%'; *s++ = *fmt; break; } fmt++; } *s = 0; return s - str; } /* * str is a buffer of max length str_len, which, after calling, will * contain a representation of the given [y, m, d] date using the * current locale (as defined by LC_TIME). * * In the absence of any localization, use an ISO 8601 representation. */ static void locale_date(char *str, size_t str_len, int year, int month, int day) { char *fmt; #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) fmt = year ? dcgettext(PACKAGE, "%Y-%M-%D", LC_TIME) : dcgettext(PACKAGE, "--%M-%D", LC_TIME); #else fmt = "%I"; #endif format_date(str, str_len, fmt, year, month, day); } static int is_valid_date(const int day, const int month, const int year) { int valid = 1; int month_length[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /* * leap year */ if ((!(year % 4)) && ((year % 100) || !(year % 400))) month_length[2] = 29; if (month < 1 || month > 12) valid = 0; else if (day < 1 || day > month_length[month]) valid = 0; else if (year < 0) /* we don't accept negative year numbers */ valid = 0; return valid; } int parse_date_string(char *str, int *day, int *month, int *year) { int i = 0; char buf[12], *s, *p; assert(day && month && year); if(!str || !*str) return FALSE; p = s = strncpy(buf, str, sizeof(buf)); if(*s == '-' && *s++ == '-') { /* omitted year */ *year = 0; p = ++s; i++; } while(*s) { if(isdigit(*s)) { s++; continue; } else if(*s == '-') { if(++i > 3) return FALSE; *s++ = '\0'; switch(i) { case 1: *year = safe_atoi(p); break; case 2: *month = safe_atoi(p); break; } p = s; } else return FALSE; } if (i != 2 || !*p) return FALSE; *day = atoi(p); return is_valid_date(*day, *month, *year); } static void edit_date(int item, int nb) { int i, date[3], old; char *s = db_fget_byid(item, nb); char *field[] = { N_("Day: "), N_("Month: "), N_("Year (optional): ") }; old = parse_date_string(s, &date[0], &date[1], &date[2]); for(i = 0; i < 3; i++) { s = (old && date[i]) ? strdup_printf("%d", date[i]) : NULL; if(change_field(gettext(field[i]), &s, 5)) return; /* user aborted with ^G */ date[i] = (s && is_number(s)) ? atoi(s) : 0; if(!s) { switch(i) { case 0: db_fput_byid(item, nb, NULL); /*delete*/ case 1: /* fall through */ return; } } else xfree(s); } /* ISO 8601 date, of the YYYY-MM-DD or --MM-DD format */ if(is_valid_date(date[0], date[1], date[2])) { if(date[2]) s = strdup_printf("%04d-%02d-%02d", date[2], date[1], date[0]); else s = strdup_printf("--%02d-%02d", date[1], date[0]); db_fput_byid(item, nb, xstrdup(s)); } else statusline_msg(_("Invalid date")); } /* input range: 1-9A-Z * output range: 0-34 */ static int key_to_field_number(char c) { int n = c - '1'; if(n >= 0 && n < 9) return n; n = c - 'A' + 9; if(n > 8 && n < 35) return n; return -1; } static void edit_field(int tab, char c, int item_number) { ui_enable_mouse(FALSE); int i = 0, number, idx; char *msg; abook_field_list *f; list_item item; if((number = key_to_field_number(c)) < 0) goto detachfield; edit_undo(item_number, BACKUP_ITEM); view_info(tab, NULL, &f); while(1) { if(!f) goto detachfield; if(i == number) break; f = f->next; i++; } find_field_number(f->field->key, &idx); switch(f->field->type) { case FIELD_STRING: msg = strdup_printf("%s: ", f->field->name); item = db_item_get(item_number); if(strcmp(f->field->key, "name") == 0) change_name_field(msg,&item[idx],MAX_FIELD_LEN); else change_field(msg,&item[idx],MAX_FIELD_LEN); free(msg); break; case FIELD_LIST: edit_list(item_number, idx, 0); break; case FIELD_EMAILS: edit_list(item_number, idx, 1); break; case FIELD_DATE: edit_date(item_number, idx); goto detachfield; default: assert(0); } detachfield: if(opt_get_bool(BOOL_USE_MOUSE)) ui_enable_mouse(TRUE); } static int edit_loop(int item) { static int tab = 0; /* first tab */ int c; werase(editw); headerline(gettext(EDITOR_HELPLINE)); refresh_statusline(); print_editor_header(item); editor_tab(tab); editor_print_data(tab, item); wmove(editw, EDITW_LINES - 1, EDITW_COLS - 1); refresh(); wrefresh(editw); c = getch(); if(c == '\033') { statusline_addstr("ESC-"); c = getch(); clear_statusline(); /* Escaped bindings */ switch(c) { case 'r': roll_emails(item, ROTATE_RIGHT); break; default: break; } return item; } if(c == KEY_MOUSE) { MEVENT event; if(getmouse(&event) == OK) { if(event.bstate & BUTTON1_CLICKED || event.bstate & BUTTON1_DOUBLE_CLICKED) { int window_y, window_x; getbegyx(editw, window_y, window_x); if(event.y == 0) { /* if first row is selected, then go back to list */ return -1; } else if(event.y == window_y + TABLINE || event.y == window_y + TABLINE + 1) { char* tab_name; int mouse_x = event.x; int xpos = 2 + 1; /* look at editor_tab() and try out */ int clicked_tab = 0; while(clicked_tab < views_count) { view_info(clicked_tab, &tab_name, NULL); xpos += strwidth(tab_name) + 5; /* fprintf(stderr, "trying tab %d\n", clicked_tab); */ if(xpos >= mouse_x) { break; /* clicked tab was found */ } else { /* try next tab */ clicked_tab++; } } if(clicked_tab < views_count) { tab = clicked_tab; } } else if(event.y >= window_y + FIELDS_START_Y) { /* is mouse in field area? */ int j = 1 + event.y - window_y - FIELDS_START_Y; /* field numbers start with 1, but if j='0', then char='0' */ /* so fix this, by adding 1 to j */ int field_char = (j < 10) ? '0' + j : 'A' + j - 10; edit_field(tab, field_char, item); } } else if(event.bstate & BUTTON4_PRESSED) { tab = tab == 0 ? views_count - 1 : tab - 1; } else if(event.bstate & BUTTON5_PRESSED) { tab = tab == views_count - 1 ? 0 : tab + 1; } return item; } } /* No uppercase nor numeric key should be used in this menu, * as they are reserved for field selection */ switch(c) { case 'h': case KEY_LEFT: tab = tab == 0 ? views_count - 1 : tab - 1; break; case 'l': case KEY_RIGHT: tab = tab == views_count - 1 ? 0 : tab + 1; break; case KEY_UP: case '<': case 'k': if(is_valid_item(item - 1)) item--; break; case KEY_DOWN: case '>': case 'j': if(is_valid_item(item + 1)) item++; break; case 'r': roll_emails(item, ROTATE_LEFT); break; case '?': display_help(HELP_EDITOR); break; case 'u': item = edit_undo(item, RESTORE_ITEM); break; case 'm': launch_mutt(item); clearok(stdscr, 1); break; case 'v': launch_wwwbrowser(item); clearok(stdscr, 1); break; case 12 : clearok(stdscr, 1); break; /* ^L (refresh screen) */ case 'q': return -1; default: edit_field(tab, c, item); } return item; } void edit_item(int item) { if(item < 0) { if(list_get_curitem() < 0) return; else item = list_get_curitem(); } init_editor(); while((item = edit_loop(item)) >= 0) list_set_curitem(item); /* this is not very clean way to go */ close_editor(); } void add_item() { char *field = NULL; list_item item = item_create(); change_field(_("Name: "), &field, MAX_FIELD_LEN); if( field == NULL ) return; item_fput(item, NAME, field); add_item2database(item); item_free(&item); list_set_curitem(last_item()); edit_item(last_item()); } abook-0.6.1/database.h0000644000175000017500000000621312604110441012713 0ustar yugyug#ifndef _DATABASE_H #define _DATABASE_H #define MAX_LIST_ITEMS 9 #define MAX_EMAIL_LEN 80 #define MAX_EMAILSTR_LEN (MAX_LIST_ITEMS * (MAX_EMAIL_LEN + 1) + 1) #define MAX_FIELD_LEN 81 enum field_types { NAME = 0, /* important */ EMAIL, ADDRESS, ADDRESS2, CITY, STATE, ZIP, COUNTRY, PHONE, WORKPHONE, FAX, MOBILEPHONE, NICK, URL, NOTES, ANNIVERSARY, GROUPS, ITEM_FIELDS /* this is the last */ }; typedef struct { char *key; char *name; int type; } abook_field; typedef struct abook_field_list_t { abook_field *field; struct abook_field_list_t *next; } abook_field_list; typedef char **list_item; enum { FIELD_STRING = 1, FIELD_EMAILS, FIELD_LIST, FIELD_DATE, }; enum { ENUM_ALL, ENUM_SELECTED }; struct db_enumerator { int item; int mode; /* warning: read only */ }; /* * Field operations */ inline int field_id(int i); abook_field *find_standard_field(char *key, int do_declare); abook_field *real_find_field(char *key, abook_field_list *list, int *nb); #define find_field(key, list) real_find_field(key, list, NULL) #define find_field_number(key, pt_nb) real_find_field(key, NULL, pt_nb) #define find_declared_field(key) find_field(key,NULL) void get_field_info(int i, char **key, char **name, int *type); void add_field(abook_field_list **list, abook_field *f); char *declare_new_field(char *key, char *name, char *type, int accept_standard); void init_standard_fields(); /* * Various database operations */ void prepare_database_internals(); int parse_database(FILE *in); int load_database(char *filename); int write_database(FILE *out, struct db_enumerator e); int save_database(); void remove_selected_items(); void merge_selected_items(); void remove_duplicates(); void sort_surname(); void sort_by_field(char *field); void close_database(); int add_item2database(list_item item); char *get_surname(char *s); int find_item(char *str, int start, int search_fields[]); int is_selected(int item); int is_valid_item(int item); int last_item(); int db_n_items(); int real_db_enumerate_items(struct db_enumerator e); struct db_enumerator init_db_enumerator(int mode); #define db_enumerate_items(e) \ while( -1 != (e.item = real_db_enumerate_items(e))) /* * item manipulation */ list_item item_create(); void item_empty(list_item item); void item_free(list_item *item); void item_copy(list_item dest, list_item src); void item_duplicate(list_item dest, list_item src); void item_merge(list_item dest, list_item src); int item_fput(list_item item, int i, char *val); char *item_fget(list_item item, int i); /* * database field read */ char *real_db_field_get(int item, int i, int std); #define db_fget(item, i) real_db_field_get(item, i, 1) #define db_fget_byid(item, i) real_db_field_get(item, i, 0) #define db_name_get(item) db_fget(item, NAME) char *db_email_get(int item); /* memory has to be freed by the caller */ /* * database field write */ int real_db_field_put(int item, int i, int std, char *val); #define db_fput(item, i, val) \ real_db_field_put(item, i, 1, val) #define db_fput_byid(item, i, val) \ real_db_field_put(item, i, 0, val) /* * database item read */ list_item db_item_get(int i); #endif /* _DATABASE_H */ abook-0.6.1/database.c0000644000175000017500000004225112604110441012710 0ustar yugyug /* * $Id$ * * by JH * * Copyright (C) Jaakko Heinonen */ #include #include #include #include #include #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "abook.h" #include "database.h" #include "gettext.h" #include "list.h" #include "misc.h" #include "xmalloc.h" abook_field_list *fields_list = NULL; int fields_count = 0; list_item *database = NULL; static int items = 0; #define ITEM_SIZE (fields_count * sizeof(char *)) #define LAST_ITEM (items - 1) #define INITIAL_LIST_CAPACITY 30 static int list_capacity = 0; int standard_fields_indexed[ITEM_FIELDS]; /* * notes about adding predefined "standard" fields: * - leave alone "name" and "email" * - reorganize the field numbers in database.h */ abook_field standard_fields[] = { {"name", N_("Name"), FIELD_STRING}, /* NAME */ {"email", N_("E-mail addresses"), FIELD_EMAILS}, /* EMAIL */ {"address", N_("Address"), FIELD_STRING}, /* ADDRESS */ {"address2", N_("Address2"), FIELD_STRING}, /* ADDRESS2 */ {"city", N_("City"), FIELD_STRING}, /* CITY */ {"state", N_("State/Province"), FIELD_STRING}, /* STATE */ {"zip", N_("ZIP/Postal Code"), FIELD_STRING}, /* ZIP */ {"country", N_("Country"), FIELD_STRING}, /* COUNTRY */ {"phone", N_("Home Phone"), FIELD_STRING}, /* PHONE */ {"workphone", N_("Work Phone"), FIELD_STRING}, /* WORKPHONE */ {"fax", N_("Fax"), FIELD_STRING}, /* FAX */ {"mobile", N_("Mobile"), FIELD_STRING}, /* MOBILEPHONE */ {"nick", N_("Nickname/Alias"), FIELD_STRING}, /* NICK */ {"url", N_("URL"), FIELD_STRING}, /* URL */ {"notes", N_("Notes"), FIELD_STRING}, /* NOTES */ {"anniversary", N_("Anniversary day"), FIELD_DATE}, /* ANNIVERSARY */ {"groups", N_("Groups"), FIELD_LIST}, /* GROUPS */ {0} /* ITEM_FIELDS */ }; extern int first_list_item; extern int curitem; extern char *selected; extern char *datafile; static abook_field * declare_standard_field(int i) { abook_field *f = xmalloc(sizeof(abook_field)); f = memcpy(f, &standard_fields[i], sizeof(abook_field)); f->name = xstrdup(gettext(f->name)); add_field(&fields_list, f); assert(standard_fields_indexed[i] == -1); standard_fields_indexed[i] = fields_count++; return f; } abook_field * find_standard_field(char *key, int do_declare) { int i; for(i = 0; standard_fields[i].key; i++) if(0 == strcmp(standard_fields[i].key, key)) goto found; return NULL; found: return do_declare ? declare_standard_field(i) : &standard_fields[i]; } /* Search for a field. Use the list of declared fields if no list specified. */ abook_field * real_find_field(char *key, abook_field_list *list, int *number) { abook_field_list *cur; int i; for(cur = (list ? list : fields_list), i = 0; cur; cur = cur->next, i++) if(0 == strcmp(cur->field->key, key)) { if(number) *number = i; return cur->field; } if(number) *number = -1; return NULL; } void get_field_info(int i, char **key, char **name, int *type) { abook_field_list *cur = fields_list; int j; assert(i < fields_count); for(j = 0; i >= 0 && j < i; j++, cur = cur->next) ; if(key) *key = (i < 0) ? NULL : cur->field->key; if(name) *name = (i < 0) ? NULL : cur->field->name; if(type) *type = (i < 0) ? -1 : cur->field->type; } void add_field(abook_field_list **list, abook_field *f) { abook_field_list *tmp; for(tmp = *list; tmp && tmp->next; tmp = tmp->next) ; if(tmp) { tmp->next = xmalloc(sizeof(abook_field_list)); tmp = tmp->next; } else *list = tmp = xmalloc(sizeof(abook_field_list)); tmp->field = f; tmp->next = NULL; } char * declare_new_field(char *key, char *name, char *type, int accept_standard) { abook_field *f; if(find_declared_field(key)) return _("field already defined"); if(find_standard_field(key, accept_standard)) return accept_standard ? NULL /* ok, added */ : _("standard field does not need to be declared"); f = xmalloc(sizeof(abook_field)); f->key = xstrdup(key); f->name = xstrdup(name); if(!*type || (0 == strcasecmp("string", type))) f->type = FIELD_STRING; else if(0 == strcasecmp("emails", type)) f->type = FIELD_EMAILS; else if(0 == strcasecmp("list", type)) f->type = FIELD_LIST; else if(0 == strcasecmp("date", type)) f->type = FIELD_DATE; else return _("unknown type"); add_field(&fields_list, f); fields_count++; return NULL; } /* * Declare a new field while database is already loaded * making it grow accordingly */ static void declare_unknown_field(char *key) { int i; declare_new_field(key, key, "string", 1 /* accept to declare "standard" fields */); if(!database) return; for(i = 0; i < items; i++) if(database[i]) { database[i] = xrealloc(database[i], ITEM_SIZE); database[i][fields_count - 1] = NULL; } } /* * Declare "standard" fields, thus preserving them while parsing a database, * even if they won't be displayed. */ void init_standard_fields() { int i; for(i = 0; standard_fields[i].key; i++) if(standard_fields_indexed[i] == -1) declare_standard_field(i); } /* Some initializations - Must be called _before_ load_opts() */ void prepare_database_internals() { int i; for(i = 0; i < ITEM_FIELDS; i++) standard_fields_indexed[i] = -1; /* the only two mandatory fields */ declare_standard_field(NAME); declare_standard_field(EMAIL); } int parse_database(FILE *in) { char *line = NULL; char *tmp; int sec=0, field; list_item item; item = item_create(); for(;;) { line = getaline(in); if(feof(in)) { if(item[field_id(NAME)] && sec) { add_item2database(item); } else { item_empty(item); } break; } if(!*line || *line == '\n' || *line == '#') { goto next; } else if(*line == '[') { if(item[field_id(NAME)] && sec ) { add_item2database(item); } else { item_empty(item); } sec = 1; memset(item, 0, ITEM_SIZE); if(!(tmp = strchr(line, ']'))) sec = 0; /*incorrect section lines are skipped*/ } else if((tmp = strchr(line, '=') ) && sec) { *tmp++ = '\0'; find_field_number(line, &field); if(field != -1) { item[field] = xstrdup(tmp); goto next; } else if(!strcasecmp(opt_get_str(STR_PRESERVE_FIELDS), "all")){ declare_unknown_field(line); item = xrealloc(item, ITEM_SIZE); item[fields_count - 1] = xstrdup(tmp); goto next; } } next: xfree(line); } xfree(line); item_free(&item); return 0; } int load_database(char *filename) { FILE *in; if(database != NULL) close_database(); if ((in = abook_fopen(filename, "r")) == NULL) return -1; parse_database(in); return (items == 0) ? 2 : 0; } int write_database(FILE *out, struct db_enumerator e) { int j; int i = 0; abook_field_list *cur; fprintf(out, "# abook addressbook file\n\n" "[format]\n" "program=" PACKAGE "\n" "version=" VERSION "\n" "\n\n" ); db_enumerate_items(e) { fprintf(out, "[%d]\n", i); for(cur = fields_list, j = 0; cur; cur = cur->next, j++) { if( database[e.item][j] != NULL && *database[e.item][j] ) fprintf(out, "%s=%s\n", cur->field->key, database[e.item][j] ); } fputc('\n', out); i++; } return 0; } int save_database() { FILE *out; int ret = 0; struct db_enumerator e = init_db_enumerator(ENUM_ALL); char *datafile_new = strconcat(datafile, ".new", NULL); char *datafile_old = strconcat(datafile, "~", NULL); if( (out = abook_fopen(datafile_new, "w")) == NULL ) { ret = -1; goto out; } if(!list_is_empty()) /* * Possibly should check if write_database failed. * Currently it returns always zero. */ write_database(out, e); fclose(out); if(access(datafile, F_OK) == 0 && (rename(datafile, datafile_old)) == -1) ret = -1; if((rename(datafile_new, datafile)) == -1) ret = -1; out: free(datafile_new); free(datafile_old); return ret; } static void db_free_item(int item) { item_empty(database[item]); } void close_database() { int i; for(i=0; i <= LAST_ITEM; i++) db_free_item(i); xfree(database); free(selected); database = NULL; selected = NULL; items = 0; first_list_item = curitem = -1; list_capacity = 0; } static void validate_item(list_item item) { abook_field_list *f; int i, max_field_len; char *tmp; for(f = fields_list, i = 0; f; f = f->next, i++) { max_field_len = 0; switch(f->field->type) { case FIELD_EMAILS: max_field_len = MAX_EMAILSTR_LEN; if(item[i] == NULL) item[i] = xstrdup(""); break; case FIELD_LIST: /* TODO quote string if it contains commas */ break; case FIELD_STRING: max_field_len = MAX_FIELD_LEN; break; case FIELD_DATE: break; default: assert(0); } if(max_field_len && item[i] && ((int)strlen(item[i]) > max_field_len)) { /* truncate field */ tmp = item[i]; item[i][max_field_len - 1] = 0; item[i] = xstrdup(item[i]); free(tmp); } } } static void adjust_list_capacity() { if(list_capacity < 1) list_capacity = INITIAL_LIST_CAPACITY; else if(items >= list_capacity) list_capacity *= 2; else if(list_capacity / 2 > items) list_capacity /= 2; else return; if(database) database = xrealloc(database,sizeof(list_item) * list_capacity); else /* allocate memory _and_ initialize pointers to NULL */ database = xmalloc0(sizeof(list_item) * list_capacity); selected = xrealloc(selected, list_capacity); } int add_item2database(list_item item) { /* 'name' field is mandatory */ if((item[field_id(NAME)] == NULL) || ! *item[field_id(NAME)]) { item_empty(item); return 1; } if(++items > list_capacity) adjust_list_capacity(); validate_item(item); selected[LAST_ITEM] = 0; database[LAST_ITEM] = item_create(); item_copy(database[LAST_ITEM], item); return 0; } void remove_selected_items() { int i, j; if(list_is_empty()) return; if(!selected_items()) selected[curitem] = 1; for(j = LAST_ITEM; j >= 0; j--) { if(selected[j]) { db_free_item(j); /* added for .4 data_s_ */ for(i = j; i < LAST_ITEM; i++) { item_copy(database[i], database[i + 1]); selected[i] = selected[i + 1]; } item_free(&database[LAST_ITEM]); items--; } } if(curitem > LAST_ITEM && items > 0) curitem = LAST_ITEM; adjust_list_capacity(); select_none(); } void merge_selected_items() { int i, j; int destitem = -1; if((list_is_empty()) || (selected_items() < 2)) return; /* Find the top item */ for(j=0; destitem < 0; j++) if(selected[j]) destitem = j; /* Merge pairwise */ for(j = LAST_ITEM; j > destitem; j--) { if(selected[j]) { item_merge(database[destitem],database[j]); for(i = j; i < LAST_ITEM; i++) { /* TODO: this can be done by moving pointers */ item_copy(database[i], database[i + 1]); selected[i] = selected[i + 1]; } item_free(&database[LAST_ITEM]); items--; } } if(curitem > LAST_ITEM && items > 0) curitem = LAST_ITEM; adjust_list_capacity(); select_none(); } void remove_duplicates() { int i,j,k; char *tmpj; if(list_is_empty()) return; /* Scan from the last one */ for(j = LAST_ITEM - 1; j >= 0; j--) { tmpj = db_name_get(j); for(i = LAST_ITEM; i > j; i--) /* Check name and merge if dups */ if (0 == strcmp(tmpj,db_name_get(i))) { item_merge(database[j],database[i]); if (curitem == i) curitem--; for(k = i; k < LAST_ITEM; k++) { item_copy(database[k], database[k + 1]); } item_free(&database[LAST_ITEM]); items--; } } adjust_list_capacity(); } char * get_surname(char *s) { char *p = s + strlen(s); assert(s != NULL); while(p > s && *(p - 1) != ' ') p--; return xstrdup(p); } static int surnamecmp(const void *i1, const void *i2) { int ret, idx = field_id(NAME); char *n1, *n2, *s1, *s2; n1 = (*(list_item *)i1)[idx]; n2 = (*(list_item *)i2)[idx]; s1 = get_surname(n1); s2 = get_surname(n2); if( !(ret = safe_strcoll(s1, s2)) ) ret = safe_strcoll(n1, n2); free(s1); free(s2); return ret; } static int sort_field = -1; static int namecmp(const void *i1, const void *i2) { char *n1, *n2; assert(sort_field >= 0 && sort_field < fields_count); n1 = (*(list_item *)i1)[sort_field]; n2 = (*(list_item *)i2)[sort_field]; return safe_strcoll(n1, n2); } void sort_by_field(char *name) { int field; select_none(); name = (name == NULL) ? opt_get_str(STR_SORT_FIELD) : name; find_field_number(name, &field); if(field < 0) { if(name == opt_get_str(STR_SORT_FIELD)) statusline_msg(_("Invalid field value defined " "in configuration")); else statusline_msg(_("Invalid field value for sorting")); return; } sort_field = field; qsort((void *)database, items, sizeof(list_item), namecmp); refresh_screen(); } void sort_surname() { select_none(); qsort((void *)database, items, sizeof(list_item), surnamecmp); refresh_screen(); } /* TODO implement a search based on more sophisticated patterns */ int find_item(char *str, int start, int search_fields[]) { int i, id; char *findstr = NULL; char *tmp = NULL; int ret = -1; /* not found */ struct db_enumerator e = init_db_enumerator(ENUM_ALL); if(list_is_empty() || !is_valid_item(start)) return -2; /* error */ findstr = xstrdup(str); findstr = strlower(findstr); e.item = start - 1; /* must be "real start" - 1 */ db_enumerate_items(e) { for(i = 0; search_fields[i] >= 0; i++) { if((id = field_id(search_fields[i])) == -1) continue; if(database[e.item][id] == NULL) continue; tmp = xstrdup(database[e.item][id]); if( tmp && strstr(strlower(tmp), findstr) ) { ret = e.item; goto out; } xfree(tmp); } } out: free(findstr); free(tmp); return ret; } int is_selected(int item) { return selected[item]; } int is_valid_item(int item) { return item <= LAST_ITEM && item >= 0; } int last_item() { return LAST_ITEM; } int db_n_items() { return items; } int real_db_enumerate_items(struct db_enumerator e) { int item = max(0, e.item + 1); int i; switch(e.mode) { #ifdef DEBUG case ENUM_ALL: break; #endif case ENUM_SELECTED: for(i = item; i <= LAST_ITEM; i++) { if(is_selected(i)) { item = i; goto out; } } return -1; #ifdef DEBUG default: fprintf(stderr, "real_db_enumerate_items() " "BUG: unknown db_enumerator mode: %d\n", e.mode); break; #endif } out: return (item > LAST_ITEM || item < 0) ? -1 : item; } struct db_enumerator init_db_enumerator(int mode) { struct db_enumerator e; e.item = -1; /* important - means "start from beginning" */ e.mode = mode; return e; } list_item item_create() { return xmalloc0(ITEM_SIZE); } void item_free(list_item *item) { assert(item); xfree(*item); } void item_empty(list_item item) { int i; assert(item); for(i = 0; i < fields_count; i++) if(item[i]) xfree(item[i]); } void item_copy(list_item dest, list_item src) { memmove(dest, src, ITEM_SIZE); } void item_duplicate(list_item dest, list_item src) { int i; for(i = 0; i < fields_count; i++) dest[i] = src[i] ? xstrdup(src[i]) : NULL; } /* * Merging works as follows: * - fields present only in source are copied over to dest * - multi-fields (email, groups) are checked for dupes ad merged * */ void item_merge(list_item dest, list_item src) { int i, found = 0; abook_list *dfield, *sfield, *ed, *es; for(i = 0; i < fields_count; i++) if (src[i]) { if (!dest[i]) dest[i] = xstrdup(src[i]); else if((i == field_id(EMAIL)) || (i == field_id(GROUPS))) { dfield = csv_to_abook_list(dest[i]); sfield = csv_to_abook_list(src[i]); for(es = sfield; es; es = es->next) { for(found=0, ed = dfield; (!found) && ed; ed = ed->next) found = (0 == strcmp(es->data,ed->data)); if (!found) abook_list_append(&dfield, es->data); } xfree(dest[i]); dest[i] = abook_list_to_csv(dfield); abook_list_free(&dfield); abook_list_free(&sfield); } } item_empty(src); } /* * Things like item[field_id(NICK)] should never be used, since besides NAME * and EMAIL, none of the standard fields can be assumed to be existing. * * Prefer the functions item_fput(), item_fget(), db_fput() and db_fget() * to access fields in items and database. */ /* quick lookup by "standard" field number */ inline int field_id(int i) { assert((i >= 0) && (i < ITEM_FIELDS)); return standard_fields_indexed[i]; } int item_fput(list_item item, int i, char *val) { int id = field_id(i); if(id != -1) { item[id] = val; return 1; } return 0; } char * item_fget(list_item item, int i) { int id = field_id(i); if(id != -1) return item[id]; else return NULL; } int real_db_field_put(int item, int i, int std, char *val) { int id; assert(database[item]); id = std ? field_id(i) : i; if(id != -1) { database[item][id] = val; return 1; } return 0; } char * real_db_field_get(int item, int i, int std) { int id; assert(database[item]); id = std ? field_id(i) : i; if(id != -1) return database[item][id]; else return NULL; } list_item db_item_get(int i) { return database[i]; } /* Fetch addresses from all fields of FIELD_EMAILS type */ /* Memory has to be freed by the caller */ char * db_email_get(int item) { int i; char *res; abook_field_list *cur; abook_list *emails = NULL; for(cur = fields_list, i = 0; cur; cur = cur->next, i++) if(cur->field->type == FIELD_EMAILS && *database[item][i]) abook_list_append(&emails, database[item][i]); res = abook_list_to_csv(emails); abook_list_free(&emails); return res ? res : xstrdup(""); } abook-0.6.1/abook.c0000644000175000017500000004066312604110441012244 0ustar yugyug/* * $Id$ * * by JH * * Copyright (C) Jaakko Heinonen */ #include #include #include #include #include #include #include #include #include #ifdef HAVE_CONFIG_H # include "config.h" #endif #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) # include #endif #include #include "abook.h" #include "gettext.h" #include "ui.h" #include "database.h" #include "list.h" #include "filter.h" #include "edit.h" #include "misc.h" #include "options.h" #include "getname.h" #include "getopt.h" #include "views.h" #include "xmalloc.h" static void init_abook(); static void quit_abook_sig(int i); static void set_filenames(); static void parse_command_line(int argc, char **argv); static void show_usage(); static void mutt_query(char *str); static void init_mutt_query(); static void convert(char *srcformat, char *srcfile, char *dstformat, char *dstfile); static void add_email(int); char *datafile = NULL; static char *rcfile = NULL; // custom formatting char custom_format[FORMAT_STRING_LEN] = "{nick} ({name}): {mobile}"; struct abook_output_item_filter selected_item_filter; bool alternative_datafile = FALSE; bool alternative_rcfile = FALSE; static int datafile_writeable() { FILE *f; assert(datafile != NULL); if( (f = fopen(datafile, "a")) == NULL) return FALSE; fclose(f); return TRUE; } static void check_abook_directory() { struct stat s; char *dir; assert(!is_ui_initialized()); if(alternative_datafile) return; dir = strconcat(getenv("HOME"), "/" DIR_IN_HOME, NULL); assert(dir != NULL); if(stat(dir, &s) == -1) { if(errno != ENOENT) { perror(dir); free(dir); exit(EXIT_FAILURE); } if(mkdir(dir, 0700) == -1) { printf(_("Cannot create directory %s\n"), dir); perror(dir); free(dir); exit(EXIT_FAILURE); } } else if(!S_ISDIR(s.st_mode)) { printf(_("%s is not a directory\n"), dir); free(dir); exit(EXIT_FAILURE); } free(dir); } static void xmalloc_error_handler(int err) { /* * We don't try to save addressbook here because we don't know * if it's fully loaded to memory. */ if(is_ui_initialized()) close_ui(); fprintf(stderr, _("Memory allocation failure: %s\n"), strerror(err)); exit(EXIT_FAILURE); } static void init_abook() { set_filenames(); check_abook_directory(); init_opts(); if(load_opts(rcfile) > 0) { printf(_("Press enter to continue...\n")); fgetc(stdin); } init_default_views(); signal(SIGTERM, quit_abook_sig); init_index(); if(init_ui()) exit(EXIT_FAILURE); umask(DEFAULT_UMASK); if(!datafile_writeable()) { char *s = strdup_printf(_("File %s is not writeable"), datafile); refresh_screen(); statusline_msg(s); free(s); if(load_database(datafile) || !statusline_ask_boolean( _("If you continue all changes will " "be lost. Do you want to continue?"), FALSE)) { free_opts(); /*close_database();*/ close_ui(); exit(EXIT_FAILURE); } } else load_database(datafile); refresh_screen(); } void quit_abook(int save_db) { if(save_db) { if(opt_get_bool(BOOL_AUTOSAVE)) save_database(); else if(statusline_ask_boolean(_("Save database"), TRUE)) save_database(); } else if(!statusline_ask_boolean(_("Quit without saving"), FALSE)) return; free_opts(); close_database(); close_ui(); exit(EXIT_SUCCESS); } static void quit_abook_sig(int i) { quit_abook(QUIT_SAVE); } int main(int argc, char **argv) { #if defined(HAVE_SETLOCALE) && defined(HAVE_LOCALE_H) setlocale(LC_MESSAGES, ""); setlocale(LC_TIME, ""); setlocale(LC_CTYPE, ""); setlocale(LC_COLLATE, ""); #endif bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); xmalloc_set_error_handler(xmalloc_error_handler); prepare_database_internals(); parse_command_line(argc, argv); init_abook(); get_commands(); quit_abook(QUIT_SAVE); return 0; } static void free_filenames() { xfree(rcfile); xfree(datafile); } static void set_filenames() { struct stat s; if( (stat(getenv("HOME"), &s)) == -1 || ! S_ISDIR(s.st_mode) ) { fprintf(stderr,_("%s is not a valid HOME directory\n"), getenv("HOME") ); exit(EXIT_FAILURE); } if(!datafile) datafile = strconcat(getenv("HOME"), "/" DIR_IN_HOME "/" DATAFILE, NULL); if(!rcfile) rcfile = strconcat(getenv("HOME"), "/" DIR_IN_HOME "/" RCFILE, NULL); atexit(free_filenames); } /* * CLI */ enum { MODE_CONT, MODE_ADD_EMAIL, MODE_ADD_EMAIL_QUIET, MODE_QUERY, MODE_CONVERT }; static void change_mode(int *current, int mode) { if(*current != MODE_CONT) { fprintf(stderr, _("Cannot combine options --mutt-query, " "--convert, " "--add-email or --add-email-quiet\n")); exit(EXIT_FAILURE); } *current = mode; } void set_filename(char **var, char *path) { char *cwd; assert(var != NULL); assert(*var == NULL); /* or else we probably leak memory */ assert(path != NULL); if(*path == '/') { *var = xstrdup(path); return; } cwd = my_getcwd(); *var = strconcat(cwd, "/", path, NULL); free(cwd); } #define set_convert_var(X) do { if(mode != MODE_CONVERT) {\ fprintf(stderr, _("please use option --%s after --convert option\n"),\ long_options[option_index].name);\ exit(EXIT_FAILURE);\ } else\ X = optarg;\ } while(0) static void parse_command_line(int argc, char **argv) { int mode = MODE_CONT; char *query_string = NULL; char *informat = "abook", *outformat = "text", *infile = "-", *outfile = "-"; int c; selected_item_filter = select_output_item_filter("muttq"); for(;;) { int option_index = 0; enum { OPT_ADD_EMAIL, OPT_ADD_EMAIL_QUIET, OPT_MUTT_QUERY, OPT_CONVERT, OPT_INFORMAT, OPT_OUTFORMAT, OPT_OUTFORMAT_STR, OPT_INFILE, OPT_OUTFILE, OPT_FORMATS }; static struct option long_options[] = { { "help", 0, 0, 'h' }, { "add-email", 0, 0, OPT_ADD_EMAIL }, { "add-email-quiet", 0, 0, OPT_ADD_EMAIL_QUIET }, { "datafile", 1, 0, 'f' }, { "mutt-query", 1, 0, OPT_MUTT_QUERY }, { "config", 1, 0, 'C' }, { "convert", 0, 0, OPT_CONVERT }, { "informat", 1, 0, OPT_INFORMAT }, { "outformat", 1, 0, OPT_OUTFORMAT }, { "outformatstr", 1, 0, OPT_OUTFORMAT_STR }, { "infile", 1, 0, OPT_INFILE }, { "outfile", 1, 0, OPT_OUTFILE }, { "formats", 0, 0, OPT_FORMATS }, { 0, 0, 0, 0 } }; c = getopt_long(argc, argv, "hC:f:", long_options, &option_index); if(c == -1) break; switch(c) { case 'h': show_usage(); exit(EXIT_SUCCESS); case OPT_ADD_EMAIL: change_mode(&mode, MODE_ADD_EMAIL); break; case OPT_ADD_EMAIL_QUIET: change_mode(&mode, MODE_ADD_EMAIL_QUIET); break; case 'f': set_filename(&datafile, optarg); alternative_datafile = TRUE; break; case OPT_MUTT_QUERY: query_string = optarg; change_mode(&mode, MODE_QUERY); break; case 'C': set_filename(&rcfile, optarg); alternative_rcfile = TRUE; break; case OPT_CONVERT: change_mode(&mode, MODE_CONVERT); break; case OPT_INFORMAT: set_convert_var(informat); break; case OPT_OUTFORMAT: if(mode != MODE_CONVERT && mode != MODE_QUERY) { fprintf(stderr, _("please use option --outformat after --convert or --mutt-query option\n")); exit(EXIT_FAILURE); } // ascii-name is stored, it's used to traverse // e_filters[] in MODE_CONVERT (see export_file()) outformat = optarg; // but in case a query-compatible filter is requested // try to guess right now which one it is, from u_filters[] selected_item_filter = select_output_item_filter(outformat); break; case OPT_OUTFORMAT_STR: strncpy(custom_format, optarg, FORMAT_STRING_LEN); custom_format[FORMAT_STRING_LEN - 1] = 0; break; case OPT_INFILE: set_convert_var(infile); break; case OPT_OUTFILE: set_convert_var(outfile); break; case OPT_FORMATS: print_filters(); exit(EXIT_SUCCESS); default: exit(EXIT_FAILURE); } } // if the output format requested does not allow filtered querying // (not in u_filter[]) and --convert has not been specified; bailout if(! selected_item_filter.func && mode != MODE_CONVERT) { printf("output format %s not supported or incompatible with --mutt-query\n", outformat); exit(EXIT_FAILURE); } if(! selected_item_filter.func) selected_item_filter = select_output_item_filter("muttq"); else if (! strcmp(outformat, "custom")) { if(! *custom_format) { fprintf(stderr, _("Invalid custom format string\n")); exit(EXIT_FAILURE); } } if(optind < argc) { fprintf(stderr, _("%s: unrecognized arguments on command line\n"), argv[0]); exit(EXIT_FAILURE); } switch(mode) { case MODE_ADD_EMAIL: add_email(0); case MODE_ADD_EMAIL_QUIET: add_email(1); case MODE_QUERY: mutt_query(query_string); case MODE_CONVERT: convert(informat, infile, outformat, outfile); } } static void show_usage() { puts (PACKAGE " v" VERSION "\n"); puts (_(" -h --help show usage")); puts (_(" -C --config use an alternative configuration file")); puts (_(" -f --datafile use an alternative addressbook file")); puts (_(" --mutt-query make a query for mutt")); puts (_(" --add-email " "read an e-mail message from stdin and\n" " " "add the sender to the addressbook")); puts (_(" --add-email-quiet " "same as --add-email but doesn't\n" " require to confirm adding")); putchar('\n'); puts (_(" --convert convert address book files")); puts (_(" options to use with --convert:")); puts (_(" --informat format for input file")); puts (_(" (default: abook)")); puts (_(" --infile source file")); puts (_(" (default: stdin)")); puts (_(" --outformat format for output file")); puts (_(" (default: text)")); puts (_(" --outfile destination file")); puts (_(" (default: stdout)")); puts (_(" --outformatstr format to use for \"custom\" --outformat")); puts (_(" (default: \"{nick} ({name}): {mobile}\")")); puts (_(" --formats list available formats")); } /* * end of CLI */ static void quit_mutt_query(int status) { close_database(); free_opts(); exit(status); } static void mutt_query(char *str) { init_mutt_query(); if( str == NULL || !strcasecmp(str, "all") ) { export_file("muttq", "-"); } else { int search_fields[] = {NAME, EMAIL, NICK, -1}; int i; if( (i = find_item(str, 0, search_fields)) < 0 ) { printf("Not found\n"); quit_mutt_query(EXIT_FAILURE); } // mutt expects a leading line containing // a message about the query. // Others output filter supporting query (vcard, custom) // don't needs this. if(!strcmp(selected_item_filter.filtname, "muttq")) putchar('\n'); while(i >= 0) { e_write_item(stdout, i, selected_item_filter.func); i = find_item(str, i + 1, search_fields); } } quit_mutt_query(EXIT_SUCCESS); } static void init_mutt_query() { set_filenames(); init_opts(); load_opts(rcfile); if( load_database(datafile) ) { printf(_("Cannot open database\n")); quit_mutt_query(EXIT_FAILURE); exit(EXIT_FAILURE); } } static char * make_mailstr(int item) { char email[MAX_EMAIL_LEN]; char *ret; char *name = strdup_printf("\"%s\"", db_name_get(item)); get_first_email(email, item); ret = *email ? strdup_printf("%s <%s>", name, email) : xstrdup(name); free(name); return ret; } void print_stderr(int item) { fprintf (stderr, "%c", '\n'); if( is_valid_item(item) ) muttq_print_item(stderr, item); else { struct db_enumerator e = init_db_enumerator(ENUM_SELECTED); db_enumerate_items(e) { muttq_print_item(stderr, e.item); } } } void launch_mutt(int item) { char *cmd = NULL, *mailstr = NULL; char *mutt_command = opt_get_str(STR_MUTT_COMMAND); if(mutt_command == NULL || !*mutt_command) return; if( is_valid_item(item) ) mailstr = make_mailstr(item); else { struct db_enumerator e = init_db_enumerator(ENUM_SELECTED); char *tmp = NULL; db_enumerate_items(e) { tmp = mailstr; mailstr = tmp ? strconcat(tmp, ",", make_mailstr(e.item), NULL): strconcat(make_mailstr(e.item), NULL); free(tmp); } } cmd = strconcat(mutt_command, " \'", mailstr, "\'", NULL); free(mailstr); #ifdef DEBUG fprintf(stderr, "cmd: %s\n", cmd); #endif system(cmd); free(cmd); /* * we need to make sure that curses settings are correct */ ui_init_curses(); } void launch_wwwbrowser(int item) { char *cmd = NULL; if( !is_valid_item(item) ) return; if(db_fget(item, URL)) cmd = strdup_printf("%s '%s'", opt_get_str(STR_WWW_COMMAND), safe_str(db_fget(item, URL))); else return; if ( cmd ) system(cmd); free(cmd); /* * we need to make sure that curses settings are correct */ ui_init_curses(); } FILE * abook_fopen (const char *path, const char *mode) { struct stat s; bool stat_ok; stat_ok = (stat(path, &s) != -1); if(strchr(mode, 'r')) return (stat_ok && S_ISREG(s.st_mode)) ? fopen(path, mode) : NULL; else return (stat_ok && S_ISDIR(s.st_mode)) ? NULL : fopen(path, mode); } static void convert(char *srcformat, char *srcfile, char *dstformat, char *dstfile) { int ret=0; if( !srcformat || !srcfile || !dstformat || !dstfile ) { fprintf(stderr, _("too few arguments to make conversion\n")); fprintf(stderr, _("try --help\n")); } #ifndef DEBUG if( !strcasecmp(srcformat, dstformat) ) { printf( _("input and output formats are the same\n" "exiting...\n")); exit(EXIT_FAILURE); } #endif set_filenames(); init_opts(); load_opts(rcfile); init_standard_fields(); switch(import_file(srcformat, srcfile)) { case -1: fprintf(stderr, _("input format %s not supported\n"), srcformat); ret = 1; break; case 1: fprintf(stderr, _("cannot read file %s\n"), srcfile); ret = 1; break; } if(!ret) switch(export_file(dstformat, dstfile)) { case -1: fprintf(stderr, _("output format %s not supported\n"), dstformat); ret = 1; break; case 1: fprintf(stderr, _("cannot write file %s\n"), dstfile); ret = 1; break; } close_database(); free_opts(); exit(ret); } /* * --add-email handling */ static int add_email_count = 0, add_email_found = 0; static void quit_add_email() { if(add_email_count > 0) { if(save_database() < 0) { fprintf(stderr, _("cannot open %s\n"), datafile); exit(EXIT_FAILURE); } printf(_("%d item(s) added to %s\n"), add_email_count, datafile); } else if (add_email_found == 0) { puts(_("Valid sender address not found")); } exit(EXIT_SUCCESS); } static void quit_add_email_sig(int signal) { quit_add_email(); } static void init_add_email() { set_filenames(); check_abook_directory(); init_opts(); load_opts(rcfile); init_standard_fields(); atexit(free_opts); /* * we don't actually care if loading fails or not */ load_database(datafile); atexit(close_database); signal(SIGINT, quit_add_email_sig); } static int add_email_add_item(int quiet, char *name, char *email) { list_item item; if(opt_get_bool(BOOL_ADD_EMAIL_PREVENT_DUPLICATES)) { int search_fields[] = { EMAIL, -1 }; if(find_item(email, 0, search_fields) >= 0) { if(!quiet) printf(_("Address %s already in addressbook\n"), email); return 0; } } if(!quiet) { FILE *in = fopen("/dev/tty", "r"); char c; if(!in) { fprintf(stderr, _("cannot open /dev/tty\n" "you may want to use --add-email-quiet\n")); exit(EXIT_FAILURE); } do { printf(_("Add \"%s <%s>\" to %s? (%c/%c)\n"), name, email, datafile, *S_("keybinding for yes|y"), *S_("keybinding for no|n")); c = tolower(getc(in)); if(c == *S_("keybinding for no|n")) { fclose(in); return 0; } } while(c != *S_("keybinding for yes|y")); fclose(in); } item = item_create(); item_fput(item, NAME, xstrdup(name)); item_fput(item, EMAIL, xstrdup(email)); add_item2database(item); item_free(&item); return 1; } static void add_email(int quiet) { char *line; char *name = NULL, *email = NULL; struct stat s; if( (fstat(fileno(stdin), &s)) == -1 || S_ISDIR(s.st_mode) ) { fprintf(stderr, _("stdin is a directory or cannot stat stdin\n")); exit(EXIT_FAILURE); } init_add_email(); do { line = getaline(stdin); if(line && !strncasecmp("From:", line, 5) ) { add_email_found++; getname(line, &name, &email); add_email_count += add_email_add_item(quiet, name, email); xfree(name); xfree(email); } xfree(line); } while( !feof(stdin) ); quit_add_email(); } /* * end of --add-email handling */ abook-0.6.1/xmalloc.h0000644000175000017500000000114112604110363012604 0ustar yugyug#ifndef _XMALLOC_H #define _XMALLOC_H #include /* for size_t */ /* * avoid possible collision with readline xmalloc functions */ #define xmalloc _xmalloc_xmalloc #define xrealloc _xmalloc_xrealloc void xmalloc_set_error_handler(void (*)(int)); void * xmalloc(size_t); void * xmalloc0(size_t); void * xmalloc_inc(size_t, size_t); void * xmalloc0_inc(size_t, size_t); void * xrealloc(void *, size_t); void * xrealloc_inc(void *, size_t, size_t); char * xstrdup(const char *s); char * xstrndup(const char *s, size_t); #define xfree(ptr) do { free(ptr); ptr = NULL; } while(0) #endif abook-0.6.1/xmalloc.c0000644000175000017500000000671512604110363012613 0ustar yugyug/* * $Id$ * * Common xmalloc memory allocation routines * * written by Jaakko Heinonen */ /* * Copyright (c) 2005 Jaakko Heinonen * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer * in this position and unchanged. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #include "gettext.h" #include "xmalloc.h" static void xmalloc_default_error_handler(int err) { fprintf(stderr, _("Memory allocation failure: %s\n"), strerror(err)); exit(EXIT_FAILURE); } static void (*xmalloc_handle_error)(int err) = xmalloc_default_error_handler; void xmalloc_set_error_handler(void (*func)(int err)) { if(func) xmalloc_handle_error = func; else xmalloc_handle_error = xmalloc_default_error_handler; } void * xmalloc(size_t size) { void *p; if((p = malloc(size)) == NULL) (*xmalloc_handle_error)(errno); return p; } void * xmalloc0(size_t size) { void *p; p = xmalloc(size); if(p) memset(p, 0, size); return p; } static void * _xmalloc_inc(size_t size, size_t inc, int zero) { size_t total_size = size + inc; /* * check if the calculation overflowed */ if(total_size < size) { (*xmalloc_handle_error)(EINVAL); return NULL; } return zero ? xmalloc0(total_size) : xmalloc(total_size); } void * xmalloc_inc(size_t size, size_t inc) { return _xmalloc_inc(size, inc, 0); } void * xmalloc0_inc(size_t size, size_t inc) { return _xmalloc_inc(size, inc, 1); } void * xrealloc(void *ptr, size_t size) { if((ptr = realloc(ptr, size)) == NULL) (*xmalloc_handle_error)(errno); return ptr; } void * xrealloc_inc(void *ptr, size_t size, size_t inc) { size_t total_size = size + inc; /* * check if the calculation overflowed */ if(total_size < size) { (*xmalloc_handle_error)(EINVAL); return NULL; } if((ptr = realloc(ptr, total_size)) == NULL) (*xmalloc_handle_error)(errno); return ptr; } char * xstrdup(const char *s) { size_t len = strlen(s); void *new; new = xmalloc_inc(len, 1); if(new == NULL) return NULL; return (char *)memcpy(new, s, len + 1); } char * xstrndup(const char *s, size_t len) { char *new; size_t n = strlen(s); if(n > len) n = len; new = xmalloc_inc(n, 1); if(new == NULL) return NULL; memcpy(new, s, n); new[n] = '\0'; return new; } abook-0.6.1/views.h0000644000175000017500000000064212604110363012307 0ustar yugyug#ifndef _VIEWS_H #define _VIEWS_H #include "database.h" #define MAX_VIEW_FIELDS 35 /* keybindings for modifying a field: 1-9A-Z */ typedef struct abook_view_t { char *name; abook_field_list *fields; struct abook_view_t *next; } abook_view; char *add_field_to_view(char *tabname, char *field); void view_info(int number, char **name, abook_field_list **fields); void init_default_views(); #endif /* _VIEWS_H */ abook-0.6.1/views.c0000644000175000017500000000645612604110363012313 0ustar yugyug/* * $Id$ * * by Cedric Duval * * Copyright (C) Cedric Duval * */ #include #include #include #include #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "gettext.h" #include "misc.h" #include "options.h" #include "views.h" #include "xmalloc.h" abook_view *abook_views = NULL; int views_count = 0; extern abook_field standard_fields[]; static abook_view * find_view(char *name) { abook_view *cur = abook_views; for(; cur; cur = cur->next) if(0 == strcasecmp(cur->name, name)) return cur; return NULL; } static abook_view * create_view(char *name) { abook_view *v; for(v = abook_views; v && v->next; v = v->next) ; if(v) { v->next = xmalloc(sizeof(abook_view)); v = v->next; } else abook_views = v = xmalloc(sizeof(abook_view)); v->name = xstrdup(name); v->fields = NULL; v->next = NULL; views_count++; return v; } static int fields_in_view(abook_view *view) { int nb; abook_field_list *f; for(nb = 0, f = view->fields; f; f = f->next, nb++) ; return nb; } char * add_field_to_view(char *viewname, char *field) { abook_view *v; abook_field *f; if( !(f = find_declared_field(field)) && !(f = find_standard_field(field, 1 /*do_declare*/)) ) return _("undeclared field"); if((v = find_view(viewname)) == NULL) v = create_view(viewname); else if(fields_in_view(v) == MAX_VIEW_FIELDS) return _("maximal number of fields per view reached"); if(v->fields && (find_field(field, v->fields))) return _("field already in this view"); add_field(&v->fields, f); return NULL; } void view_info(int number, char **name, abook_field_list **fields) { int i = 0; abook_view *cur = abook_views; assert((number < views_count) && (number >= 0)); while(i++ != number) cur = cur->next; if(fields) *fields = cur->fields; if(name) *name = cur->name; } #define MAX_DEFAULT_FIELDS_PER_VIEW 6 void init_default_views() { char *str; int i, j, add_custom_fields, add_custom_view = 0; add_custom_fields = !strcasecmp(opt_get_str(STR_PRESERVE_FIELDS), "standard"); /* if the user has configured views, no need to provide defaults */ if(abook_views) goto out; add_custom_view = 1; struct { char *name; int fields[MAX_DEFAULT_FIELDS_PER_VIEW + 1]; } default_views[] = { { N_("CONTACT"), {NAME, EMAIL, -1} }, { N_("ADDRESS"), { ADDRESS, ADDRESS2, CITY, STATE, ZIP, COUNTRY, -1 } }, { N_("PHONE"), { PHONE, WORKPHONE, FAX, MOBILEPHONE, -1 } }, { N_("OTHER"), { NICK, URL, NOTES, ANNIVERSARY, GROUPS, -1 } }, { 0 } }; for(i = 0; default_views[i].name; i++) { for(j = 0; j < MAX_DEFAULT_FIELDS_PER_VIEW; j++) { if(default_views[i].fields[j] == -1) break; str = standard_fields[default_views[i].fields[j]].key; add_field_to_view(gettext(default_views[i].name), str); } } out: #define init_view(view, key, name) do { \ if(add_custom_fields || add_custom_view) \ declare_new_field(key, name, "string", \ 0 /*"standard" field already declared above*/);\ if(add_custom_view) \ add_field_to_view(view, key); \ } while(0); init_view(_("CUSTOM"), "custom1", _("Custom1")); init_view(_("CUSTOM"), "custom2", _("Custom2")); init_view(_("CUSTOM"), "custom3", _("Custom3")); init_view(_("CUSTOM"), "custom4", _("Custom4")); init_view(_("CUSTOM"), "custom5", _("Custom5")); } abook-0.6.1/vcard.h0000644000175000017500000000016312604110363012247 0ustar yugyug#ifndef _VCARD_H #define _VCARD_H #include int vcard_parse_file_libvformat(char *filename); #endif abook-0.6.1/vcard.c0000644000175000017500000001316212604110363012245 0ustar yugyug /* * Copyright 2012, Raphaël Droz * * abook's wrapper for libvformat: * fits a vcard parsed by libvformat into a usable abook item list * * see: * libvformat's vf_iface.h * http://www.imc.org/pdi/vcard-21.txt * rfc 2426 * rfc 2739 */ #include #include #include "database.h" #include "options.h" // bool #include "misc.h" // abook_list_to_csv #include "xmalloc.h" #include "vcard.h" int vcard_parse_file_libvformat(char *filename) { VF_OBJECT_T* vfobj; if (!vf_read_file(&vfobj, filename)) { fprintf(stderr, "Could not read VCF file %s\n", filename); return 1; } // a libvformat property VF_PROP_T* prop; // property number (used for multivalued properties) int props = 0; // temporary values abook_list *multivalues = NULL; char *propval = 0; bool phone_found; do { list_item item = item_create(); phone_found = false; /* Note: libvformat use va_args, we *must* cast the last NULL argument to (char*) for arch where sizeof(int) != sizeof(char *) */ // fullname [ or struct-name [ or name ] ] if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "FN", (char*)0)) if ((propval = vf_get_prop_value_string(prop, 0))) item_fput(item, NAME, xstrdup(propval)); if (!propval && vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "N", (char*)0)) { // TODO: GIVENNAME, FAMILYNAME propval = vf_get_prop_value_string(prop, 0); if(propval) item_fput(item, NAME, xstrdup(propval)); } if (!propval && vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "NAME", (char*)0)) { propval = vf_get_prop_value_string(prop, 0); if(propval) item_fput(item, NAME, xstrdup(propval)); } // email(s). (TODO: EMAIL;PREF: should be abook's first) if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "EMAIL", (char*)0)) { do { props = 0; while ((propval = vf_get_prop_value_string(prop, props++))) { abook_list_append(&multivalues, propval); } } while (vf_get_next_property(&prop)); item_fput(item, EMAIL, abook_list_to_csv(multivalues)); abook_list_free(&multivalues); } // format for ADR: // PO Box, Extended Addr, Street, Locality, Region, Postal Code, Country if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "ADR", (char*)0)) { props = 0; // PO Box: abook ignores vf_get_prop_value_string(prop, props++); // ext-address propval = vf_get_prop_value_string(prop, props++); if(propval) item_fput(item, ADDRESS2, xstrdup(propval)); // address (street) propval = vf_get_prop_value_string(prop, props++); if(propval) item_fput(item, ADDRESS, xstrdup(propval)); // locality (city) propval = vf_get_prop_value_string(prop, props++); if(propval) item_fput(item, CITY, xstrdup(propval)); // region (state) propval = vf_get_prop_value_string(prop, props++); if(propval) item_fput(item, STATE, xstrdup(propval)); // postal-code (zip) propval = vf_get_prop_value_string(prop, props++); if(propval) item_fput(item, ZIP, xstrdup(propval)); // country propval = vf_get_prop_value_string(prop, props++); if(propval) item_fput(item, COUNTRY, xstrdup(propval)); } // phone numbers // home if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "TEL", "HOME", (char*)0) && (propval = vf_get_prop_value_string(prop, 0))) { item_fput(item, PHONE, xstrdup(propval)); phone_found = true; } // workphone if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "TEL", "WORK", (char*)0) && (propval = vf_get_prop_value_string(prop, 0))) { item_fput(item, WORKPHONE, xstrdup(propval)); phone_found = true; } // fax if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "TEL", "FAX", (char*)0) && (propval = vf_get_prop_value_string(prop, 0))) { item_fput(item, FAX, xstrdup(propval)); phone_found = true; } // cellphone if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "TEL", "CELL", (char*)0) && (propval = vf_get_prop_value_string(prop, 0))) { item_fput(item, MOBILEPHONE, xstrdup(propval)); phone_found = true; } // or grab any other one as default if(! phone_found && vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "TEL", (char*)0) && (propval = vf_get_prop_value_string(prop, 0))) { item_fput(item, PHONE, xstrdup(propval)); } // nick if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "NICKNAME", (char*)0)) { propval = vf_get_prop_value_string(prop, 0); item_fput(item, NICK, xstrdup(propval)); } // url if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "URL", (char*)0)) { propval = vf_get_prop_value_string(prop, 0); item_fput(item, URL, xstrdup(propval)); } // notes if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "NOTE", (char*)0)) { propval = vf_get_prop_value_string(prop, 0); item_fput(item, NOTES, xstrdup(propval)); } // anniversary if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "BDAY", (char*)0)) { propval = vf_get_prop_value_string(prop, 0); item_fput(item, ANNIVERSARY, xstrdup(propval)); } // (mutt) groups if (vf_get_property(&prop, vfobj, VFGP_FIND, NULL, "CATEGORIES", (char*)0)) { do { props = 0; while ((propval = vf_get_prop_value_string(prop, props++))) { abook_list_append(&multivalues, propval); } } while (vf_get_next_property(&prop)); item_fput(item, GROUPS, abook_list_to_csv(multivalues)); abook_list_free(&multivalues); } add_item2database(item); item_free(&item); } while (vf_get_next_object(&vfobj)); return 0; } abook-0.6.1/ui.h0000644000175000017500000000364512604110363011575 0ustar yugyug#ifndef _UI_H #define _UI_H #include "abook_curses.h" enum { HELP_MAIN, HELP_EDITOR }; int is_ui_initialized(); void ui_init_curses(); void ui_init_color_pairs_user(); void ui_enable_mouse(bool enabled); int init_ui(); void close_ui(); void headerline(const char *str); void refresh_screen(); int statusline_msg(const char *msg); int statusline_askchoice(const char *msg, const char *choices, short dflt); char *ask_filename(const char *prompt); int statusline_ask_boolean(const char *msg, int def); void clear_statusline(); void display_help(int help); void statusline_addstr(const char *str); char * ui_readline(const char *prompt, char *s, size_t limit, bool use_completion); void refresh_statusline(); void get_commands(); void ui_remove_items(); void ui_merge_items(); void ui_remove_duplicates(); void ui_clear_database(); void ui_find(int next); void ui_print_number_of_items(); void ui_read_database(); char *get_surname(char *s); void ui_print_database(); void ui_open_datafile(); #if NCURSES_MOUSE_VERSION != 2 #define BUTTON5_PRESSED (0x80 | 0x8000000) #endif #include "options.h" /* needed for options_get_bool */ #define UI_HLINE_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '-' : ACS_HLINE #define UI_VLINE_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '|' : ACS_VLINE #define UI_TEE_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '-' : ACS_BTEE #define UI_LBOXLINE_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '/' : ACS_HLINE #define UI_RBOXLINE_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '\\' : ACS_HLINE #define UI_ULCORNER_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ ' ' : ACS_ULCORNER #define UI_URCORNER_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ ' ' : ACS_URCORNER #define UI_LLCORNER_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '+' : ACS_LLCORNER #define UI_LRCORNER_CHAR opt_get_bool(BOOL_USE_ASCII_ONLY) ? \ '+' : ACS_LRCORNER #endif abook-0.6.1/stamp-h.in0000644000175000017500000000001212604110363012671 0ustar yugyugtimestamp abook-0.6.1/sample.abookrc0000644000175000017500000000564012604110363013627 0ustar yugyug# sample abook configuration file # see abookrc(5) for detailed explanation ## ## Commands ## ========== # Setting a variable # -------------------- # # syntax: set ll, export elected, or ancel?" msgstr "" #: filter.c:377 ui.c:769 msgid "keybindings:all/selected/cancel|asc" msgstr "" #: filter.c:398 msgid "Error occured while exporting" msgstr "Fel vid export" #: filter.c:2469 #, c-format msgid "%02d/%02d\tAnniversary of %s\n" msgstr "" #: filter.c:2498 #, c-format msgid "parse_custom_format: fmt_string or ft not allocated\n" msgstr "" #: filter.c:2517 #, c-format msgid "parse_custom_format: invalid placeholder: {%s}\n" msgstr "" #: filter.c:2565 #, c-format msgid "%s: invalid format, index %ld\n" msgstr "" #: help.h:11 msgid "\t?\t\thelp\n" msgstr "\t?\t\thjälp\n" #: help.h:12 msgid "\tq\t\tquit\n" msgstr "\tq\t\tavsluta\n" #: help.h:13 msgid "\tQ\t\tquit without saving\n" msgstr "\tQ\t\tavsluta utan att spara\n" #: help.h:14 msgid "\tP\t\tquit and output selected item(s) to stderr\n" msgstr "\tP\t\tavsluta och skriv ut valda post(er) till stderr\n" #: help.h:15 msgid "\t^L\t\trefresh screen\n" msgstr "\t^L\t\tuppdatera skärmen\n" #: help.h:17 msgid "\tarrows / j,k\tscroll list\n" msgstr "\tpilar / j,k\trulla listan\n" #: help.h:18 msgid "\tenter\t\tview/edit item\n" msgstr "\tenter\t\tgranska/redigera post\n" #: help.h:19 msgid "\ta\t\tadd item\n" msgstr "\ta\t\tlägg till post\n" #: help.h:20 msgid "\tr / del\t\tremove selected items\n" msgstr "\tr / del\t\tta bort valda poster\n" #: help.h:21 msgid "\tM\t\tmerge selected items (into top one)\n" msgstr "" #: help.h:22 msgid "\tD\t\tduplicate item\n" msgstr "\tD\t\tduplicera post\n" #: help.h:23 #, fuzzy msgid "\tU\t\tremove duplicates\n" msgstr "\tD\t\tduplicera post\n" #: help.h:25 msgid "\tspace\t\tselect item\n" msgstr "\tspace\t\tvälj post\n" #: help.h:26 msgid "\t+\t\tselect all\n" msgstr "\t+\t\tvälj alla\n" #: help.h:27 msgid "\t-\t\tunselect all\n" msgstr "\t+\t\avmarkera alla\n" #: help.h:28 msgid "\t*\t\tinvert selection\n" msgstr "\t*\t\tinvertera urval\n" #: help.h:30 msgid "\tw\t\twrite database to disk\n" msgstr "\tw\t\tskriv databasen till disken\n" #: help.h:31 msgid "\tl\t\tread database from disk\n" msgstr "\tl\t\tläs databasen frÃ¥n disken\n" #: help.h:32 msgid "\tC\t\tclear whole database\n" msgstr "\tC\t\tnollställ hela databasen\n" #: help.h:33 msgid "\ti\t\timport database\n" msgstr "\ti\t\timportera databas\n" #: help.h:34 msgid "\te\t\texport database\n" msgstr "\te\t\texportera databasen\n" #: help.h:35 msgid "\tp\t\tprint database\n" msgstr "\tp\t\tskriv ut databasen\n" #: help.h:36 msgid "\to\t\topen database\n" msgstr "\to\t\töppna databas\n" #: help.h:38 msgid "\ts\t\tsort database\n" msgstr "\ts\t\tsortera databasen\n" #: help.h:39 msgid "\tS\t\t\"surname sort\"\n" msgstr "\tS\t\t\"sortera efter efternamn\"\n" #: help.h:40 msgid "\tF\t\tsort by field (defined in configuration file)\n" msgstr "\tF\t\tsortera efter fält (angivet i konfigurationsfilen)\n" #: help.h:42 msgid "\t/\t\tsearch\n" msgstr "\t/\t\tsök\n" #: help.h:43 msgid "\t\\\t\tsearch next occurrence\n" msgstr "\t\\\t\tsök efter nästa förekomst\n" #: help.h:45 msgid "\tA\t\tmove current item up\n" msgstr "\tA\t\tflytta denna post uppÃ¥t\n" #: help.h:46 msgid "\tZ\t\tmove current item down\n" msgstr "\tZ\t\tflytta denna post nedÃ¥t\n" #: help.h:48 msgid "\tm\t\tsend mail with mutt\n" msgstr "\tm\t\tskicka post med mutt\n" #: help.h:49 msgid "\tv\t\tview URL with web browser\n" msgstr "\tv\t\tvisa URL i webbläsare\n" #: help.h:57 #, fuzzy msgid "\tarrows/h,l\t\tchange tab\n" msgstr "\ta,c,p,o,C/pilar/h,l\tbyt flik\n" #: help.h:59 #, fuzzy msgid "\tq\t\t\tquit to main screen\n" msgstr "\tQ\t\tavsluta utan att spara\n" #: help.h:61 #, fuzzy msgid "\t1 - 5 A - Z\t\tedit fields\n" msgstr "\t1 - 5\t\t\tredigera fält\n" #: help.h:63 msgid "\tk or <\t\t\tprevious item\n" msgstr "\tk or <\t\t\tföregÃ¥ende post\n" #: help.h:64 msgid "\tj or >\t\t\tnext item\n" msgstr "\tj or >\t\t\tnästa post\n" #: help.h:66 #, fuzzy msgid "\tr\t\t\troll e-mail addresses up\n" msgstr "\tr\t\t\trotera ebrevsadresser\n" #: help.h:67 #, fuzzy msgid "\tESC-r\t\t\troll e-mail addresses down\n" msgstr "\tr\t\t\trotera ebrevsadresser\n" #: help.h:69 msgid "\tu\t\t\tundo\n" msgstr "\tu\t\t\tÃ¥ngra\n" #: help.h:71 msgid "\tm\t\t\tsend mail with mutt\n" msgstr "\tm\t\t\tskicka post med mutt\n" #: help.h:72 msgid "\tv\t\t\tview url with web browser\n" msgstr "\tv\t\t\tvisa url i webbläsare\n" #: options.c:272 msgid "quote mismatch" msgstr "" #: options.c:278 msgid "no assignment character found" msgstr "" #: options.c:281 #, fuzzy msgid "error in comma separated list" msgstr "kommaseparerade värden" #: options.c:311 options.c:330 msgid "invalid value" msgstr "ogiltigt värde" #: options.c:351 msgid "unknown option" msgstr "okänd flagga" #: options.c:363 #, c-format msgid "" "valid values for the 'preserve_fields' option are 'all', " "'standard' (default), and 'none'\n" msgstr "" #: options.c:372 #, c-format msgid "" "valid values for the 'address_style' option are 'eu' (default), 'uk', and " "'us'\n" msgstr "" #: options.c:394 msgid "invalid value assignment" msgstr "tilldelat ogiltigt värde" #: options.c:402 msgid "" "customfield: obsolete command - please use the 'field' and 'view' commands " "instead" msgstr "" #: options.c:420 msgid "no view name provided" msgstr "" #: options.c:450 msgid "no field identifier provided" msgstr "" #: options.c:456 msgid "no field name provided" msgstr "" #: options.c:512 #, c-format msgid "%s: parse error at line %d: " msgstr "%s: parsning misslyckades pÃ¥ rad %d: " #: options.c:516 #, c-format msgid "unknown token %s\n" msgstr "okänd symbol %s\n" #: ui.c:234 #, c-format msgid "Your terminal size is %dx%d\n" msgstr "Storleken pÃ¥ ditt terminalfönster är %dx%d\n" #: ui.c:235 #, fuzzy, c-format msgid "Terminal is too small. Minimum terminal size for abook is %dx%d\n" msgstr "" "Terminalfönstret är alltför litet. Den minsta tillÃ¥tna storleken för abook " "är %dx%d\n" #: ui.c:423 msgid " (Y/n)?" msgstr "(J/n)" #: ui.c:423 msgid " (y/N)?" msgstr "(j/N)" #: ui.c:502 msgid "help" msgstr "hjälp" #: ui.c:511 msgid "Press any key to continue..." msgstr "Tryck pÃ¥ en tangent för att fortsätta..." #: ui.c:656 msgid "Remove selected item(s)" msgstr "Ta bort valda post(er)" #: ui.c:666 #, fuzzy msgid "Merge selected items" msgstr "Inga poster valda" #: ui.c:675 #, fuzzy msgid "Remove duplicates" msgstr "Ta bort valda post(er)" #: ui.c:685 msgid "Clear WHOLE database" msgstr "Nollställ HELA databasen" #: ui.c:718 msgid "Search hit bottom, continuing at top" msgstr "Sök nÃ¥dde slutet, fortsätter frÃ¥n början" #: ui.c:744 #, fuzzy, c-format msgid "Your current data will be lost - Press '%c' to continue" msgstr "Nuvarande data kommer att förloras - Tryck pÃ¥ 'y' för att fortsätta" #: ui.c:769 msgid "Print ll, print elected, or ancel?" msgstr "" #: ui.c:775 msgid "No selected items" msgstr "Inga poster valda" #: ui.c:801 msgid "File to open: " msgstr "Öppna fil: " #: ui.c:811 msgid "Save current database" msgstr "Spara denna databas" #: ui.c:819 msgid "Sorry, the specified file appears not to be a valid abook addressbook" msgstr "" "FörlÃ¥t, men den angivna filen verkar inte vara en giltig abook-adressbok" #: views.c:87 msgid "undeclared field" msgstr "" #: views.c:92 msgid "maximal number of fields per view reached" msgstr "" #: views.c:95 msgid "field already in this view" msgstr "" #: views.c:139 msgid "CONTACT" msgstr "KONTAKT" #: views.c:140 msgid "ADDRESS" msgstr "ADRESS" #: views.c:142 #, fuzzy msgid "PHONE" msgstr " TELEFON " #: views.c:143 #, fuzzy msgid "OTHER" msgstr " ANNAT " #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169 #, fuzzy msgid "CUSTOM" msgstr "EGEN " #: views.c:165 msgid "Custom1" msgstr "Egen1" #: views.c:166 msgid "Custom2" msgstr "Egen2" #: views.c:167 msgid "Custom3" msgstr "Egen3" #: views.c:168 msgid "Custom4" msgstr "Egen4" #: views.c:169 msgid "Custom5" msgstr "Egen5" #~ msgid "GnomeCard (VCard) addressbook" #~ msgstr "GnomeCard-adressbok (VCard)" #~ msgid "?:help c:contact a:address p:phone o:other" #~ msgstr "?:hjälp c:kontact a:adress p:telefon o:annat" #~ msgid "invalid custom field number" #~ msgstr "ogiltigt nummer pÃ¥ eget fält" #~ msgid "Export All/Selected/Cancel (A/s/c)?" #~ msgstr "Exportera Alla/Valda/Avbryt (A/s/c)?" #~ msgid "Print All/Selected/Cancel (a/s/C)?" #~ msgstr "Skriv ut Alla/Valda/Avbryt (a/s/C)?" #~ msgid "comma separated all values" #~ msgstr "alla värden kommaseparerade" abook-0.6.1/po/remove-potcdate.sin0000644000175000017500000000066012604110363015230 0ustar yugyug# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } abook-0.6.1/po/quot.sed0000644000175000017500000000023112604110363013076 0ustar yugyugs/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g abook-0.6.1/po/ja.po0000644000175000017500000004562212604110363012360 0ustar yugyug# abook ja.po # This file is distributed under the same license as the abook package. # msgid "" msgstr "" "Project-Id-Version: 0.5.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-01-17 14:44+0100\n" "PO-Revision-Date: 2005-10-18 18:10+0200\n" "Last-Translator: TAKAHASHI Tamotsu \n" "Language-Team: japanese\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=euc-jp\n" "Content-Transfer-Encoding: 8bit\n" #: abook.c:99 #, c-format msgid "Cannot create directory %s\n" msgstr "¥Ç¥£¥ì¥¯¥È¥ê %s ¤¬ºîÀ®¤Ç¤­¤Þ¤»¤ó\n" #: abook.c:105 #, c-format msgid "%s is not a directory\n" msgstr "%s ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n" #: abook.c:123 #, c-format msgid "Memory allocation failure: %s\n" msgstr "¥á¥â¥ê¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s\n" #: abook.c:134 #, c-format msgid "Press enter to continue...\n" msgstr "³¤±¤ë¤Ë¤Ï Enter ¥­¡¼¤ò...\n" #: abook.c:149 #, c-format msgid "File %s is not writeable" msgstr "¥Õ¥¡¥¤¥ë %s ¤Ï½ñ¤­¹þ¤ßÉÔ²Äǽ¤Ç¤¹" #: abook.c:154 msgid "If you continue all changes will be lost. Do you want to continue?" msgstr "¤³¤Î¤Þ¤Þ¤À¤ÈÊѹ¹ÅÀ¤¬¤¹¤Ù¤Æ¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¤¬¡¢Â³¤±¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?" #: abook.c:173 msgid "Save database" msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊݸ" #: abook.c:175 msgid "Quit without saving" msgstr "Êݸ¤»¤º¤Ë½ªÎ»" #: abook.c:233 #, c-format msgid "%s is not a valid HOME directory\n" msgstr "%s ¤ÏÀµ¤·¤¤ HOME ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n" #: abook.c:264 #, c-format msgid "" "Cannot combine options --mutt-query, --convert, --add-email or --add-email-" "quiet\n" msgstr "" "¼¡¤Î¥ª¥×¥·¥ç¥ó¤òƱ»þ¤ËÊ£¿ô»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó: --mutt-query, --convert, " "--add-email, --add-email-quiet\n" #: abook.c:295 #, c-format msgid "please use option --%s after --convert option\n" msgstr "--%s ¥ª¥×¥·¥ç¥ó¤Ï --convert ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤\n" #: abook.c:382 #, fuzzy, c-format msgid "please use option --outformat after --convert or --mutt-query option\n" msgstr "--%s ¥ª¥×¥·¥ç¥ó¤Ï --convert ¥ª¥×¥·¥ç¥ó¤Î¸å¤Ë»ØÄꤷ¤Æ¤¯¤À¤µ¤¤\n" #: abook.c:420 #, fuzzy, c-format msgid "Invalid custom format string\n" msgstr "ÉÔÀµ¤Ê¹àÌÜ̾¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹" #: abook.c:428 #, c-format msgid "%s: unrecognized arguments on command line\n" msgstr "%s: ǧ¼±¤Ç¤­¤Ê¤¤¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Ç¤¹\n" #: abook.c:450 msgid " -h\t--help\t\t\t\tshow usage" msgstr " -h\t--help\t\t\t\t»ÈÍÑÊýË¡" #: abook.c:451 msgid " -C\t--config\t\t\tuse an alternative configuration file" msgstr "" " -C\t--config\t<¥Õ¥¡¥¤¥ë>\t\tÄ̾ï¤Î¾ì½ê°Ê³°¤Ë¤¢¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò»È¤¦" #: abook.c:452 msgid "\t--datafile\t\t\tuse an alternative addressbook file" msgstr "" "\t--datafile\t<¥Õ¥¡¥¤¥ë>\t\tÄ̾ï¤Î¾ì½ê°Ê³°¤Ë¤¢¤ë¥¢¥É¥ì¥¹Ä¢¥Õ¥¡¥¤¥ë¤ò»È¤¦" #: abook.c:453 msgid "\t--mutt-query\t\tmake a query for mutt" msgstr "\t--mutt-query\t<ʸ»úÎó>\tÌ䤤¹ç¤ï¤»¤ËÂФ·¤Æ mutt ÍѤËÀ°·Á½ÐÎϤ¹¤ë" #: abook.c:454 msgid "" "\t--add-email\t\t\tread an e-mail message from stdin and\n" "\t\t\t\t\tadd the sender to the addressbook" msgstr "" "\t--add-email\t\t\t¥á¡¼¥ë¤òɸ½àÆþÎϤ«¤éÆÉ¤ß½Ð¤·¤Æ\n" "\t\t\t\t\t¤½¤Îº¹½Ð¿Í¤ò¥¢¥É¥ì¥¹Ä¢¤ËÄɲ乤ë" #: abook.c:458 msgid "" "\t--add-email-quiet\t\tsame as --add-email but doesn't\n" "\t\t\t\t\trequire to confirm adding" msgstr "" "\t--add-email-quiet\t\t--add-email ¤ÈƱ¤¸¡£¤¿¤À¤·\n" "\t\t\t\t\tÄɲ乤ëÁ°¤Ë³Îǧ¤òµá¤á¤Ê¤¤" #: abook.c:462 msgid "\t--convert\t\t\tconvert address book files" msgstr "\t--convert\t\t\t¥¢¥É¥ì¥¹Ä¢¥Õ¥¡¥¤¥ë¤ò¾·Á¼°¤ØÊÑ´¹¤¹¤ë" #: abook.c:463 msgid "\toptions to use with --convert:" msgstr "\t--convert ¤Ç»È¤¦¥ª¥×¥·¥ç¥ó:" #: abook.c:464 msgid "\t--informat\t\tformat for input file" msgstr "\t--informat\t<·Á¼°>\tÊÑ´¹¸µ¥Õ¥¡¥¤¥ë¤Î·Á¼°" #: abook.c:465 msgid "\t\t\t\t\t(default: abook)" msgstr "\t\t\t\t\t(´ûÄêÃÍ: abook)" #: abook.c:466 msgid "\t--infile\t\t\tsource file" msgstr "\t--infile\t<¥Õ¥¡¥¤¥ë>\t\tÊÑ´¹¸µ¥Õ¥¡¥¤¥ë" #: abook.c:467 msgid "\t\t\t\t\t(default: stdin)" msgstr "\t\t\t\t\t(´ûÄêÃÍ: ɸ½àÆþÎÏ)" #: abook.c:468 msgid "\t--outformat\t\tformat for output file" msgstr "\t--outformat\t<·Á¼°>\t½ÐÎÏÀè¥Õ¥¡¥¤¥ë¤Î·Á¼°" #: abook.c:469 msgid "\t\t\t\t\t(default: text)" msgstr "\t\t\t\t\t(´ûÄêÃÍ: text)" #: abook.c:470 msgid "\t--outfile\t\t\tdestination file" msgstr "\t--outfile\t<¥Õ¥¡¥¤¥ë>\t\t½ÐÎÏÀè¥Õ¥¡¥¤¥ë" #: abook.c:471 msgid "\t\t\t\t\t(default: stdout)" msgstr "\t\t\t\t\t(´ûÄêÃÍ: ɸ½à½ÐÎÏ)" #: abook.c:472 #, fuzzy msgid "\t--outformatstr\t \tformat to use for \"custom\" --outformat" msgstr "\t--outformat\t<·Á¼°>\t½ÐÎÏÀè¥Õ¥¡¥¤¥ë¤Î·Á¼°" #: abook.c:473 msgid "\t\t\t\t\t(default: \"{nick} ({name}): {mobile}\")" msgstr "" #: abook.c:474 msgid "\t--formats\t\t\tlist available formats" msgstr "\t--formats\t\t\tÍøÍѲÄǽ¤Ê·Á¼°°ìÍ÷¤òɽ¼¨¤¹¤ë" #: abook.c:528 #, c-format msgid "Cannot open database\n" msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬³«¤±¤Þ¤»¤ó\n" #: abook.c:654 #, c-format msgid "too few arguments to make conversion\n" msgstr "ÊÑ´¹¤ËɬÍפʥª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó\n" #: abook.c:655 #, c-format msgid "try --help\n" msgstr "--help ¤ò¤´Í÷¤¯¤À¤µ¤¤\n" #: abook.c:660 #, c-format msgid "" "input and output formats are the same\n" "exiting...\n" msgstr "" "ÆþÎϤȽÐÎϤηÁ¼°¤¬Æ±¤¸¤Ç¤¹\n" "½ªÎ»¤·¤Þ¤¹\n" #: abook.c:674 #, c-format msgid "input format %s not supported\n" msgstr "ÆþÎÏ·Á¼°¤È¤·¤Æ %s ¤Ï¤´ÍøÍѤ¤¤¿¤À¤±¤Þ¤»¤ó\n" #: abook.c:678 #, c-format msgid "cannot read file %s\n" msgstr "¥Õ¥¡¥¤¥ë %s ¤¬ÆÉ¤ß½Ð¤»¤Þ¤»¤ó\n" #: abook.c:687 #, c-format msgid "output format %s not supported\n" msgstr "½ÐÎÏ·Á¼°¤È¤·¤Æ %s ¤Ï¤´ÍøÍѤ¤¤¿¤À¤±¤Þ¤»¤ó\n" #: abook.c:693 #, c-format msgid "cannot write file %s\n" msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó\n" #: abook.c:714 #, c-format msgid "cannot open %s\n" msgstr "%s ¤¬³«¤±¤Þ¤»¤ó\n" #: abook.c:717 #, c-format msgid "%d item(s) added to %s\n" msgstr "%d ¸Ä¤Î¹àÌܤò %s ¤ËÄɲä·¤Þ¤·¤¿\n" #: abook.c:719 msgid "Valid sender address not found" msgstr "ǧ¼±²Äǽ¤Êº¹½Ð¿Í¥¢¥É¥ì¥¹¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿" #: abook.c:760 #, c-format msgid "Address %s already in addressbook\n" msgstr "¥¢¥É¥ì¥¹ %s ¤Ï´û¤Ë¥¢¥É¥ì¥¹Ä¢¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹\n" #: abook.c:770 #, c-format msgid "" "cannot open /dev/tty\n" "you may want to use --add-email-quiet\n" msgstr "" "/dev/tty ¤¬³«¤±¤Þ¤»¤ó\n" "--add-email-quiet ¤ò¤´ÍøÍѤˤʤä¿Êý¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó\n" #: abook.c:776 #, c-format msgid "Add \"%s <%s>\" to %s? (%c/%c)\n" msgstr "\"%s <%s>\" ¤ò %s ¤ËÄɲä·¤Þ¤¹¤«? (%c/%c)\n" #: abook.c:780 abook.c:787 ui.c:434 ui.c:746 msgid "keybinding for yes|y" msgstr "y" #: abook.c:781 abook.c:783 ui.c:432 msgid "keybinding for no|n" msgstr "n" #: abook.c:808 #, c-format msgid "stdin is a directory or cannot stat stdin\n" msgstr "ɸ½àÆþÎϤ¬¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢stat ÉÔ²Äǽ¤Ç¤¹\n" #: abook.h:16 msgid "q:quit ?:help a:add r:remove" msgstr "q:½ªÎ» ?:¥Ø¥ë¥× a:Äɲà r:ºï½ü" #: database.c:45 msgid "Name" msgstr "»á̾" #: database.c:46 #, fuzzy msgid "E-mail addresses" msgstr "¥á¡¼¥ë¥¢¥É¥ì¥¹: " #: database.c:47 msgid "Address" msgstr "½»½ê" #: database.c:48 msgid "Address2" msgstr "½»½ê2" #: database.c:49 msgid "City" msgstr "»ÔĮ¼" #: database.c:50 msgid "State/Province" msgstr "ÅÔÆ»Éܸ©" #: database.c:51 msgid "ZIP/Postal Code" msgstr "Í¹ÊØÈÖ¹æ" #: database.c:52 msgid "Country" msgstr "¹ñ" #: database.c:53 msgid "Home Phone" msgstr "¼«ÂðÅÅÏÃ" #: database.c:54 msgid "Work Phone" msgstr "¿¦¾ìÅÅÏÃ" #: database.c:55 msgid "Fax" msgstr "Fax" #: database.c:56 msgid "Mobile" msgstr "·ÈÂÓÅÅÏÃ" #: database.c:57 msgid "Nickname/Alias" msgstr "ÊÌ̾¡¦Î¬¹æ" #: database.c:58 msgid "URL" msgstr "URL" #: database.c:59 msgid "Notes" msgstr "¥á¥â" #: database.c:60 msgid "Anniversary day" msgstr "" #: database.c:61 msgid "Groups" msgstr "" #: database.c:167 msgid "field already defined" msgstr "" #: database.c:171 msgid "standard field does not need to be declared" msgstr "" #: database.c:186 #, fuzzy msgid "unknown type" msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹" #: database.c:648 msgid "Invalid field value defined in configuration" msgstr "ÉÔÀµ¤Ê¹àÌÜ̾¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹" #: database.c:651 #, fuzzy msgid "Invalid field value for sorting" msgstr "ÉÔÀµ¤Ê¹àÌÜ̾¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹" #: edit.c:59 msgid "Tab name too wide for screen" msgstr "¥¿¥Ö̾¤¬²èÌ̤«¤é¤Ï¤ß½Ð¤Þ¤¹" #: edit.c:360 msgid "keybindings_new_123456789|n123456789" msgstr "" #: edit.c:362 #, c-format msgid "Choose %s to modify (<1>%s%c%s%s." msgstr "" #: edit.c:363 #, fuzzy msgid "email" msgstr "¥¢¥É¥ì¥¹" #: edit.c:363 msgid "item" msgstr "" #: edit.c:368 msgid " or ew" msgstr "" #: edit.c:386 #, fuzzy msgid "E-mail: " msgstr "¥¢¥É¥ì¥¹" #: edit.c:386 msgid "Item: " msgstr "" #: edit.c:460 msgid "%Y-%M-%D" msgstr "" #: edit.c:461 msgid "--%M-%D" msgstr "" #: edit.c:539 msgid "Day: " msgstr "" #: edit.c:539 msgid "Month: " msgstr "" #: edit.c:539 msgid "Year (optional): " msgstr "" #: edit.c:569 #, fuzzy msgid "Invalid date" msgstr "ÉÔÀµ¤ÊÃͤǤ¹" #: edit.c:776 #, fuzzy msgid "Name: " msgstr "»á̾" #: edit.h:18 msgid "?:help q:quit editor" msgstr "" #: filter.c:88 filter.c:100 msgid "abook native format" msgstr "abook ÆÈ¼«·Á¼°" #: filter.c:89 msgid "ldif / Netscape addressbook" msgstr "ldif / Netscape ¥¢¥É¥ì¥¹Ä¢" #: filter.c:90 filter.c:103 filter.c:121 msgid "mutt alias" msgstr "mutt alias" #: filter.c:91 filter.c:106 msgid "pine addressbook" msgstr "pine ¥¢¥É¥ì¥¹Ä¢" #: filter.c:92 filter.c:107 msgid "comma separated values" msgstr "¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥­¥¹¥È" #: filter.c:93 filter.c:108 msgid "comma separated values (all fields)" msgstr "¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥­¥¹¥È (Á´¹àÌÜ)" #: filter.c:94 filter.c:109 msgid "Palm comma separated values" msgstr "Palm ÍÑ¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥­¥¹¥È" #: filter.c:95 msgid "vCard file" msgstr "" #: filter.c:101 msgid "ldif / Netscape addressbook (.4ld)" msgstr "ldif / Netscape ¥¢¥É¥ì¥¹Ä¢ (.4ld)" #: filter.c:102 filter.c:120 msgid "vCard 2 file" msgstr "" #: filter.c:104 msgid "mutt query format (internal use)" msgstr "" #: filter.c:105 msgid "html document" msgstr "HTML ʸ½ñ" #: filter.c:110 msgid "elm alias" msgstr "elm alias" #: filter.c:111 msgid "plain text" msgstr "¥×¥ì¡¼¥ó¥Æ¥­¥¹¥È" #: filter.c:112 msgid "Wanderlust address book" msgstr "Wanderlust ¥¢¥É¥ì¥¹Ä¢" #: filter.c:113 msgid "Spruce address book" msgstr "Spruce ¥¢¥É¥ì¥¹Ä¢" #: filter.c:114 msgid "BSD calendar" msgstr "" #: filter.c:115 filter.c:122 #, fuzzy msgid "Custom format" msgstr "³ÈÄ¥¾ðÊó1" #: filter.c:135 #, fuzzy msgid "input formats:" msgstr "ÆþÎÏ:" #: filter.c:142 #, fuzzy msgid "output formats:" msgstr "½ÐÎÏ:" #: filter.c:149 msgid "query-compatible output formats:" msgstr "" #: filter.c:214 msgid "import database" msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼è¤ê¹þ¤ß" #: filter.c:216 filter.c:345 msgid "please select a filter" msgstr "·Á¼°¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤" #: filter.c:224 filter.c:353 msgid "x -\tcancel" msgstr "x -\tÃæ»ß" #: filter.c:245 filter.c:391 msgid "Filename: " msgstr "¥Õ¥¡¥¤¥ë̾: " #: filter.c:252 msgid "Error occured while opening the file" msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿" #: filter.c:254 msgid "File does not seem to be a valid addressbook" msgstr "¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¤¥¢¥É¥ì¥¹Ä¢¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹" #: filter.c:343 msgid "export database" msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î½ÐÎÏ" #: filter.c:376 msgid "Export ll, export elected, or ancel?" msgstr "½ÐÎÏÂÐ¾Ý a:¤¹¤Ù¤Æ s:ÁªÂòÉôʬ¤Î¤ß c:Ãæ»ß?" #: filter.c:377 ui.c:769 msgid "keybindings:all/selected/cancel|asc" msgstr "asc" #: filter.c:398 msgid "Error occured while exporting" msgstr "½ÐÎÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿" #: filter.c:2469 #, c-format msgid "%02d/%02d\tAnniversary of %s\n" msgstr "" #: filter.c:2498 #, c-format msgid "parse_custom_format: fmt_string or ft not allocated\n" msgstr "" #: filter.c:2517 #, c-format msgid "parse_custom_format: invalid placeholder: {%s}\n" msgstr "" #: filter.c:2565 #, c-format msgid "%s: invalid format, index %ld\n" msgstr "" #: help.h:11 msgid "\t?\t\thelp\n" msgstr "\t?\t\t¥Ø¥ë¥×\n" #: help.h:12 msgid "\tq\t\tquit\n" msgstr "\tq\t\t½ªÎ»\n" #: help.h:13 msgid "\tQ\t\tquit without saving\n" msgstr "\tQ\t\tÊݸ¤»¤º¤Ë½ªÎ»\n" #: help.h:14 msgid "\tP\t\tquit and output selected item(s) to stderr\n" msgstr "\tP\t\t½ªÎ»¤·¤ÆÁªÂò¹àÌܤòɸ½à¥¨¥é¡¼¤Ø½ÐÎÏ\n" #: help.h:15 msgid "\t^L\t\trefresh screen\n" msgstr "\t^L\t\t²èÌ̺ÆÉÁ²è\n" #: help.h:17 msgid "\tarrows / j,k\tscroll list\n" msgstr "\tÌð°õ¥­¡¼ / j,k\t¾å²¼°Üư\n" #: help.h:18 msgid "\tenter\t\tview/edit item\n" msgstr "\tEnter\t\t¹àÌܤÎɽ¼¨/ÊÔ½¸\n" #: help.h:19 msgid "\ta\t\tadd item\n" msgstr "\ta\t\t¹àÌܤÎÄɲÃ\n" #: help.h:20 msgid "\tr / del\t\tremove selected items\n" msgstr "\tr / Del\t\tÁªÂò¹àÌܤκï½ü\n" #: help.h:21 msgid "\tM\t\tmerge selected items (into top one)\n" msgstr "" #: help.h:22 msgid "\tD\t\tduplicate item\n" msgstr "\tD\t\t¹àÌܤÎÊ£À½\n" #: help.h:23 #, fuzzy msgid "\tU\t\tremove duplicates\n" msgstr "\tD\t\t¹àÌܤÎÊ£À½\n" #: help.h:25 msgid "\tspace\t\tselect item\n" msgstr "\t¥¹¥Ú¡¼¥¹¥­¡¼\t¹àÌܤÎÁªÂò\n" #: help.h:26 msgid "\t+\t\tselect all\n" msgstr "\t+\t\t¤¹¤Ù¤ÆÁªÂò\n" #: help.h:27 msgid "\t-\t\tunselect all\n" msgstr "\t-\t\t¤¹¤Ù¤ÆÁªÂò²ò½ü\n" #: help.h:28 msgid "\t*\t\tinvert selection\n" msgstr "\t*\t\tÁªÂò¤òȿž\n" #: help.h:30 msgid "\tw\t\twrite database to disk\n" msgstr "\tw\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥Ç¥£¥¹¥¯¤Ø½ñ¤­¹þ¤ß\n" #: help.h:31 msgid "\tl\t\tread database from disk\n" msgstr "\tl\t\t¥Ç¥£¥¹¥¯¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆÉ¤ß½Ð¤·\n" #: help.h:32 msgid "\tC\t\tclear whole database\n" msgstr "\tC\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÁ´¾Ãµî\n" #: help.h:33 msgid "\ti\t\timport database\n" msgstr "\ti\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼è¤ê¹þ¤ß\n" #: help.h:34 msgid "\te\t\texport database\n" msgstr "\te\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î½ÐÎÏ\n" #: help.h:35 msgid "\tp\t\tprint database\n" msgstr "\tp\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î°õºþ\n" #: help.h:36 msgid "\to\t\topen database\n" msgstr "\to\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò³«¤¯\n" #: help.h:38 msgid "\ts\t\tsort database\n" msgstr "\ts\t\t¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀ°Îó\n" #: help.h:39 msgid "\tS\t\t\"surname sort\"\n" msgstr "\tS\t\t²¼¤Î̾Á°¤ÇÀ°Îó\n" #: help.h:40 msgid "\tF\t\tsort by field (defined in configuration file)\n" msgstr "\tF\t\tÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤷ¤¿¹àÌܤˤè¤ëÀ°Îó\n" #: help.h:42 msgid "\t/\t\tsearch\n" msgstr "\t/\t\t¸¡º÷\n" #: help.h:43 msgid "\t\\\t\tsearch next occurrence\n" msgstr "\t\\\t\t¼¡¤ò¸¡º÷\n" #: help.h:45 msgid "\tA\t\tmove current item up\n" msgstr "\tA\t\t¹àÌܤò¾å¤Ë°Üư\n" #: help.h:46 msgid "\tZ\t\tmove current item down\n" msgstr "\tZ\t\t¹àÌܤò²¼¤Ë°Üư\n" #: help.h:48 msgid "\tm\t\tsend mail with mutt\n" msgstr "\tm\t\tMutt ¤Ç¥á¡¼¥ë¤òÁ÷¤ë\n" #: help.h:49 msgid "\tv\t\tview URL with web browser\n" msgstr "\tv\t\tURL ¤ò¥Ö¥é¥¦¥¶¤Ç±ÜÍ÷¤¹¤ë\n" #: help.h:57 #, fuzzy msgid "\tarrows/h,l\t\tchange tab\n" msgstr "\ta,c,p,o,C/Ìð°õ/h,l\t¥¿¥Ö¤ÎÊѹ¹\n" #: help.h:59 #, fuzzy msgid "\tq\t\t\tquit to main screen\n" msgstr "\tQ\t\tÊݸ¤»¤º¤Ë½ªÎ»\n" #: help.h:61 #, fuzzy msgid "\t1 - 5 A - Z\t\tedit fields\n" msgstr "\t1 - 5\t\t\t¹àÌܤÎÊÔ½¸\n" #: help.h:63 msgid "\tk or <\t\t\tprevious item\n" msgstr "\tk,<\t\t\tÁ°¤Î¹àÌÜ\n" #: help.h:64 msgid "\tj or >\t\t\tnext item\n" msgstr "\tj,>\t\t\t¼¡¤Î¹àÌÜ\n" #: help.h:66 #, fuzzy msgid "\tr\t\t\troll e-mail addresses up\n" msgstr "\tr\t\t\t¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î½çÈÖ¤òÊѤ¨¤ë\n" #: help.h:67 #, fuzzy msgid "\tESC-r\t\t\troll e-mail addresses down\n" msgstr "\tr\t\t\t¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î½çÈÖ¤òÊѤ¨¤ë\n" #: help.h:69 msgid "\tu\t\t\tundo\n" msgstr "\tu\t\t\t¥¢¥ó¥É¥¥ (°ì¤ÄÁ°¤Î¾õÂÖ¤ËÌ᤹)\n" #: help.h:71 msgid "\tm\t\t\tsend mail with mutt\n" msgstr "\tm\t\t\tMutt ¤Ç¥á¡¼¥ë¤òÁ÷¤ë\n" #: help.h:72 msgid "\tv\t\t\tview url with web browser\n" msgstr "\tv\t\t\tURL ¤ò¥Ö¥é¥¦¥¶¤Ç±ÜÍ÷\n" #: options.c:272 msgid "quote mismatch" msgstr "" #: options.c:278 msgid "no assignment character found" msgstr "" #: options.c:281 #, fuzzy msgid "error in comma separated list" msgstr "¥³¥ó¥Þ¶èÀÚ¤ê¥Æ¥­¥¹¥È" #: options.c:311 options.c:330 msgid "invalid value" msgstr "ÉÔÀµ¤ÊÃͤǤ¹" #: options.c:351 msgid "unknown option" msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹" #: options.c:363 #, c-format msgid "" "valid values for the 'preserve_fields' option are 'all', " "'standard' (default), and 'none'\n" msgstr "" #: options.c:372 #, c-format msgid "" "valid values for the 'address_style' option are 'eu' (default), 'uk', and " "'us'\n" msgstr "" #: options.c:394 msgid "invalid value assignment" msgstr "ÉÔÀµ¤ÊÂåÆþ¤Ç¤¹" #: options.c:402 msgid "" "customfield: obsolete command - please use the 'field' and 'view' commands " "instead" msgstr "" #: options.c:420 msgid "no view name provided" msgstr "" #: options.c:450 msgid "no field identifier provided" msgstr "" #: options.c:456 msgid "no field name provided" msgstr "" #: options.c:512 #, c-format msgid "%s: parse error at line %d: " msgstr "%s: ʸˡ¥¨¥é¡¼¤¬ %d ¹ÔÌܤˤ¢¤ê¤Þ¤¹: " #: options.c:516 #, c-format msgid "unknown token %s\n" msgstr "%s ¤ÏÉÔÌÀ¤ÊÀßÄꥳ¥Þ¥ó¥É¤Ç¤¹\n" #: ui.c:234 #, c-format msgid "Your terminal size is %dx%d\n" msgstr "²èÌÌ¥µ¥¤¥º¤Ï %dx%d ¤Ç¤¹\n" #: ui.c:235 #, c-format msgid "Terminal is too small. Minimum terminal size for abook is %dx%d\n" msgstr "²èÌ̤¬¾®¤µ¤¹¤®¤Þ¤¹¡£¾¯¤Ê¤¯¤È¤â %dx%d ¤ÏɬÍפǤ¹\n" #: ui.c:423 msgid " (Y/n)?" msgstr " (Y/n)?" #: ui.c:423 msgid " (y/N)?" msgstr " (y/N)?" #: ui.c:502 msgid "help" msgstr "¥Ø¥ë¥×" #: ui.c:511 msgid "Press any key to continue..." msgstr "²¿¤«¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤..." #: ui.c:656 msgid "Remove selected item(s)" msgstr "ÁªÂò¹àÌܤòºï½ü¤·¤Þ¤¹¤«" #: ui.c:666 #, fuzzy msgid "Merge selected items" msgstr "²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" #: ui.c:675 #, fuzzy msgid "Remove duplicates" msgstr "ÁªÂò¹àÌܤòºï½ü¤·¤Þ¤¹¤«" #: ui.c:685 msgid "Clear WHOLE database" msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹Á´ÂΤò¾Ãµî¤·¤Þ¤¹¤«" #: ui.c:718 msgid "Search hit bottom, continuing at top" msgstr "ºÇ¸å¤Þ¤Ç¸¡º÷¤·¤Þ¤·¤¿¡£ºÇ½é¤«¤é¤â¸¡º÷¤·¤Æ¤¤¤Þ¤¹" #: ui.c:744 #, c-format msgid "Your current data will be lost - Press '%c' to continue" msgstr "¸½ºß¤Î¥Ç¡¼¥¿¤Ï¾Ã¤¨¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤è¤í¤·¤±¤ì¤Ð '%c' ¤Ç³¤±¤Æ¤¯¤À¤µ¤¤" #: ui.c:769 msgid "Print ll, print elected, or ancel?" msgstr "°õºþÂÐ¾Ý a:¤¹¤Ù¤Æ s:ÁªÂò¹àÌÜ¤Î¤ß c:Ãæ»ß?" #: ui.c:775 msgid "No selected items" msgstr "²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" #: ui.c:801 msgid "File to open: " msgstr "³«¤¯¥Õ¥¡¥¤¥ë: " #: ui.c:811 msgid "Save current database" msgstr "¸½ºß¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊݸ¤·¤Þ¤¹¤«" #: ui.c:819 msgid "Sorry, the specified file appears not to be a valid abook addressbook" msgstr "" "¿½¤·Ìõ¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤´»ØÄê¤Î¥Õ¥¡¥¤¥ë¤ÏÀµµ¬¤Î abook ¥¢¥É¥ì¥¹Ä¢¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹" #: views.c:87 msgid "undeclared field" msgstr "" #: views.c:92 msgid "maximal number of fields per view reached" msgstr "" #: views.c:95 msgid "field already in this view" msgstr "" #: views.c:139 msgid "CONTACT" msgstr "Ï¢ÍíÀè" #: views.c:140 msgid "ADDRESS" msgstr " ½»½ê " #: views.c:142 #, fuzzy msgid "PHONE" msgstr " ÅÅÏà " #: views.c:143 #, fuzzy msgid "OTHER" msgstr "¤½¤Î¾" #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169 #, fuzzy msgid "CUSTOM" msgstr " ³ÈÄ¥ " #: views.c:165 msgid "Custom1" msgstr "³ÈÄ¥¾ðÊó1" #: views.c:166 msgid "Custom2" msgstr "³ÈÄ¥¾ðÊó2" #: views.c:167 msgid "Custom3" msgstr "³ÈÄ¥¾ðÊó3" #: views.c:168 msgid "Custom4" msgstr "³ÈÄ¥¾ðÊó4" #: views.c:169 msgid "Custom5" msgstr "³ÈÄ¥¾ðÊó5" #~ msgid "GnomeCard (VCard) addressbook" #~ msgstr "GnomeCard (vCard) ¥¢¥É¥ì¥¹Ä¢" #~ msgid "?:help c:contact a:address p:phone o:other" #~ msgstr "?:¥Ø¥ë¥× c:Ï¢ÍíÀè a:½»½ê p:ÅÅÏà o:¤½¤Î¾" #~ msgid "invalid custom field number" #~ msgstr "ÉÔÀµ¤Ê³ÈÄ¥¹àÌÜÈÖ¹æ¤Ç¤¹" abook-0.6.1/po/it.po0000644000175000017500000005042612604110363012400 0ustar yugyug# Italian translations for abook package. # Copyright (C) 2006 Free Software Foundation, Inc. # This file is distributed under the same license as the abook package. # Automatically generated, 2006. # msgid "" msgstr "" "Project-Id-Version: abook 0.5.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-01-17 14:44+0100\n" "PO-Revision-Date: 2006-08-26 01:26+0200\n" "Last-Translator: Claudio Stazzone \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" "X-Poedit-SourceCharset: iso-8859-15\n" #: abook.c:99 #, c-format msgid "Cannot create directory %s\n" msgstr "Non posso creare la directory %s\n" #: abook.c:105 #, c-format msgid "%s is not a directory\n" msgstr "%s non è una directory\n" #: abook.c:123 #, c-format msgid "Memory allocation failure: %s\n" msgstr "Allocazione di memoria fallita: %s\n" #: abook.c:134 #, c-format msgid "Press enter to continue...\n" msgstr "Premi invio per continuare...\n" #: abook.c:149 #, c-format msgid "File %s is not writeable" msgstr "Il file %s non è scrivibile" #: abook.c:154 msgid "If you continue all changes will be lost. Do you want to continue?" msgstr "Se continui i cambiamenti verranno persi. Vuoi continuare?" #: abook.c:173 msgid "Save database" msgstr "Salva il database" #: abook.c:175 msgid "Quit without saving" msgstr "Esci senza salvare" #: abook.c:233 #, c-format msgid "%s is not a valid HOME directory\n" msgstr "%s non è una directory HOME valida\n" #: abook.c:264 #, c-format msgid "" "Cannot combine options --mutt-query, --convert, --add-email or --add-email-" "quiet\n" msgstr "" "Non posso combinare le opzioni --mutt-query, --convert, --add-email o --add-" "email-quiet\n" #: abook.c:295 #, c-format msgid "please use option --%s after --convert option\n" msgstr "per favore usa l'opzione --%s dopo --convert option\n" #: abook.c:382 #, fuzzy, c-format msgid "please use option --outformat after --convert or --mutt-query option\n" msgstr "per favore usa l'opzione --%s dopo --convert option\n" #: abook.c:420 #, fuzzy, c-format msgid "Invalid custom format string\n" msgstr "Valore di campo errato per l'ordinamento" #: abook.c:428 #, c-format msgid "%s: unrecognized arguments on command line\n" msgstr "%s: argomenti non validi\n" #: abook.c:450 msgid " -h\t--help\t\t\t\tshow usage" msgstr " -h\t--help\t\t\t\tmostra l'utilizzo" #: abook.c:451 msgid " -C\t--config\t\t\tuse an alternative configuration file" msgstr " -C\t--config\t\t\tusa un file di configurazione diverso" #: abook.c:452 msgid "\t--datafile\t\t\tuse an alternative addressbook file" msgstr "\t--datafile\t\t\tusa un file di rubrica diverso" #: abook.c:453 msgid "\t--mutt-query\t\tmake a query for mutt" msgstr "\t--mutt-query\t\tesegue una ricerca per mutt" #: abook.c:454 msgid "" "\t--add-email\t\t\tread an e-mail message from stdin and\n" "\t\t\t\t\tadd the sender to the addressbook" msgstr "" "\t--add-email\t\t\tlegge un messaggio da standard input e\n" "\t\t\t\t\taggiunge il mittente alla rubrica" #: abook.c:458 msgid "" "\t--add-email-quiet\t\tsame as --add-email but doesn't\n" "\t\t\t\t\trequire to confirm adding" msgstr "" "\t--add-email-quiet\t\tlo stesso che --add-email ma non\n" "\t\t\t\t\trichiede la conferma" #: abook.c:462 msgid "\t--convert\t\t\tconvert address book files" msgstr "\t--convert\t\t\tconverte i file di rubrica" #: abook.c:463 msgid "\toptions to use with --convert:" msgstr "\topzioni da usare con --convert:" #: abook.c:464 msgid "\t--informat\t\tformat for input file" msgstr "\t--informat\t\tformato del file di input" #: abook.c:465 msgid "\t\t\t\t\t(default: abook)" msgstr "\t\t\t\t\t(predefinito: abook)" #: abook.c:466 msgid "\t--infile\t\t\tsource file" msgstr "\t--infile\t\t\tfile sorgente" #: abook.c:467 msgid "\t\t\t\t\t(default: stdin)" msgstr "\t\t\t\t\t(predefinito: standard input)" #: abook.c:468 msgid "\t--outformat\t\tformat for output file" msgstr "\t--outformat\t\tformato file di output" #: abook.c:469 msgid "\t\t\t\t\t(default: text)" msgstr "\t\t\t\t\t(predefinito: testo)" #: abook.c:470 msgid "\t--outfile\t\t\tdestination file" msgstr "\t--outfile\t\t\tfile di destinazione" #: abook.c:471 msgid "\t\t\t\t\t(default: stdout)" msgstr "\t\t\t\t\t(predefinito: standard output)" #: abook.c:472 #, fuzzy msgid "\t--outformatstr\t \tformat to use for \"custom\" --outformat" msgstr "\t--outformat\t\tformato file di output" #: abook.c:473 msgid "\t\t\t\t\t(default: \"{nick} ({name}): {mobile}\")" msgstr "" #: abook.c:474 msgid "\t--formats\t\t\tlist available formats" msgstr "\t--formats\t\t\tlista dei formati disponibili" #: abook.c:528 #, c-format msgid "Cannot open database\n" msgstr "Non posso aprire il database\n" #: abook.c:654 #, c-format msgid "too few arguments to make conversion\n" msgstr "argomenti insufficienti per convertire\n" #: abook.c:655 #, c-format msgid "try --help\n" msgstr "prova --help\n" #: abook.c:660 #, c-format msgid "" "input and output formats are the same\n" "exiting...\n" msgstr "" "i formati di input e output sono gli stessi\n" "uscita...\n" #: abook.c:674 #, c-format msgid "input format %s not supported\n" msgstr "formato di input %s non supportato\n" #: abook.c:678 #, c-format msgid "cannot read file %s\n" msgstr "non posso leggere il file %s\n" #: abook.c:687 #, c-format msgid "output format %s not supported\n" msgstr "formato di output %s non supportato\n" #: abook.c:693 #, c-format msgid "cannot write file %s\n" msgstr "non posso scrivere il file %s\n" #: abook.c:714 #, c-format msgid "cannot open %s\n" msgstr "non posso aprire %s\n" #: abook.c:717 #, c-format msgid "%d item(s) added to %s\n" msgstr "%d oggetto/i aggiunto/i a %s\n" #: abook.c:719 msgid "Valid sender address not found" msgstr "Impossibile trovare un valido indirizzo del mittente" #: abook.c:760 #, c-format msgid "Address %s already in addressbook\n" msgstr "Indirizzo %s già presente in rubrica\n" #: abook.c:770 #, c-format msgid "" "cannot open /dev/tty\n" "you may want to use --add-email-quiet\n" msgstr "" "non posso aprire /dev/tty\n" "puoi usare --add-email-quiet\n" #: abook.c:776 #, c-format msgid "Add \"%s <%s>\" to %s? (%c/%c)\n" msgstr "Aggiungi \"%s <%s>\" a %s? (%c/%c)\n" #: abook.c:780 abook.c:787 ui.c:434 ui.c:746 msgid "keybinding for yes|y" msgstr "s" #: abook.c:781 abook.c:783 ui.c:432 msgid "keybinding for no|n" msgstr "n" #: abook.c:808 #, c-format msgid "stdin is a directory or cannot stat stdin\n" msgstr "standard input è una directory o non posso usare standard input\n" #: abook.h:16 msgid "q:quit ?:help a:add r:remove" msgstr "q:esci ?:aiuto a:aggiungi r:cancella" #: database.c:45 msgid "Name" msgstr "Nome" #: database.c:46 msgid "E-mail addresses" msgstr "Indirizzi e-mail" #: database.c:47 msgid "Address" msgstr "Indirizzo" #: database.c:48 msgid "Address2" msgstr "Secondo Indirizzo" #: database.c:49 msgid "City" msgstr "Città" #: database.c:50 msgid "State/Province" msgstr "Stato/Provincia" #: database.c:51 msgid "ZIP/Postal Code" msgstr "CAP" #: database.c:52 msgid "Country" msgstr "Paese" #: database.c:53 msgid "Home Phone" msgstr "Tel. Casa" #: database.c:54 msgid "Work Phone" msgstr "Tel. Ufficio" #: database.c:55 msgid "Fax" msgstr "Fax" #: database.c:56 msgid "Mobile" msgstr "Cellulare" #: database.c:57 msgid "Nickname/Alias" msgstr "Soprannome" #: database.c:58 msgid "URL" msgstr "Sito Internet" #: database.c:59 msgid "Notes" msgstr "Note" #: database.c:60 msgid "Anniversary day" msgstr "Anniversario" #: database.c:61 msgid "Groups" msgstr "" #: database.c:167 msgid "field already defined" msgstr "campo già definito" #: database.c:171 msgid "standard field does not need to be declared" msgstr "campo standard non necessita dichiarazione" #: database.c:186 msgid "unknown type" msgstr "tipo sconosciuto" #: database.c:648 msgid "Invalid field value defined in configuration" msgstr "Valore di campo errato nella configurazione" #: database.c:651 msgid "Invalid field value for sorting" msgstr "Valore di campo errato per l'ordinamento" #: edit.c:59 msgid "Tab name too wide for screen" msgstr "Nome etichetta troppo largo per lo schermo" #: edit.c:360 msgid "keybindings_new_123456789|n123456789" msgstr "keybindings_new_123456789|n123456789" #: edit.c:362 #, c-format msgid "Choose %s to modify (<1>%s%c%s%s." msgstr "Scegli %s per modificare (<1>%s%c%s%s." #: edit.c:363 msgid "email" msgstr "email" #: edit.c:363 msgid "item" msgstr "oggetto" #: edit.c:368 msgid " or ew" msgstr "o uovo" #: edit.c:386 msgid "E-mail: " msgstr "E-mails:" #: edit.c:386 msgid "Item: " msgstr "Oggetto:" #: edit.c:460 msgid "%Y-%M-%D" msgstr "" #: edit.c:461 msgid "--%M-%D" msgstr "" #: edit.c:539 msgid "Day: " msgstr "" #: edit.c:539 msgid "Month: " msgstr "" #: edit.c:539 msgid "Year (optional): " msgstr "" #: edit.c:569 #, fuzzy msgid "Invalid date" msgstr "valore non valido" #: edit.c:776 msgid "Name: " msgstr "Nome: " #: edit.h:18 msgid "?:help q:quit editor" msgstr "?:aiuto q:esci editor" #: filter.c:88 filter.c:100 msgid "abook native format" msgstr "formato nativo di abook" #: filter.c:89 msgid "ldif / Netscape addressbook" msgstr "ldif / rubrica Netscape" #: filter.c:90 filter.c:103 filter.c:121 msgid "mutt alias" msgstr "alias di mutt" #: filter.c:91 filter.c:106 msgid "pine addressbook" msgstr "rubrica di Pine" #: filter.c:92 filter.c:107 msgid "comma separated values" msgstr "valori separati da virgole" #: filter.c:93 filter.c:108 msgid "comma separated values (all fields)" msgstr "valori separati da virgole (tutti i campi)" #: filter.c:94 filter.c:109 msgid "Palm comma separated values" msgstr "Valori separati da virgole per Palm" #: filter.c:95 msgid "vCard file" msgstr "" #: filter.c:101 msgid "ldif / Netscape addressbook (.4ld)" msgstr "ldif / rubrica Netscape (.4ld)" #: filter.c:102 filter.c:120 msgid "vCard 2 file" msgstr "" #: filter.c:104 msgid "mutt query format (internal use)" msgstr "" #: filter.c:105 msgid "html document" msgstr "documento html" #: filter.c:110 msgid "elm alias" msgstr "alias di elm" #: filter.c:111 msgid "plain text" msgstr "testo puro" #: filter.c:112 msgid "Wanderlust address book" msgstr "Rubrica Wanderlust" #: filter.c:113 msgid "Spruce address book" msgstr "Rubrica Spruce" #: filter.c:114 msgid "BSD calendar" msgstr "" #: filter.c:115 filter.c:122 #, fuzzy msgid "Custom format" msgstr "Personalizzato 1" #: filter.c:135 #, fuzzy msgid "input formats:" msgstr "input:" #: filter.c:142 #, fuzzy msgid "output formats:" msgstr "output:" #: filter.c:149 msgid "query-compatible output formats:" msgstr "" #: filter.c:214 msgid "import database" msgstr "importa un database" #: filter.c:216 filter.c:345 msgid "please select a filter" msgstr "seleziona un filtro" #: filter.c:224 filter.c:353 msgid "x -\tcancel" msgstr "x -\tcancella" #: filter.c:245 filter.c:391 msgid "Filename: " msgstr "Nome del file:" #: filter.c:252 msgid "Error occured while opening the file" msgstr "Errore nell'apertura del file" #: filter.c:254 msgid "File does not seem to be a valid addressbook" msgstr "Il file non sembra essere una rubrica valida" #: filter.c:343 msgid "export database" msgstr "esporta il database" #: filter.c:376 msgid "Export ll, export elected, or ancel?" msgstr "Esporta utti, esporta elezionati, o ancella?" #: filter.c:377 ui.c:769 msgid "keybindings:all/selected/cancel|asc" msgstr "tsc" #: filter.c:398 msgid "Error occured while exporting" msgstr "Errore nell'esportazione" #: filter.c:2469 #, c-format msgid "%02d/%02d\tAnniversary of %s\n" msgstr "" #: filter.c:2498 #, c-format msgid "parse_custom_format: fmt_string or ft not allocated\n" msgstr "" #: filter.c:2517 #, c-format msgid "parse_custom_format: invalid placeholder: {%s}\n" msgstr "" #: filter.c:2565 #, c-format msgid "%s: invalid format, index %ld\n" msgstr "" #: help.h:11 msgid "\t?\t\thelp\n" msgstr "\t?\t\taiuto\n" #: help.h:12 msgid "\tq\t\tquit\n" msgstr "\tq\t\tesci\n" #: help.h:13 msgid "\tQ\t\tquit without saving\n" msgstr "\tQ\t\tesci senza salvare\n" #: help.h:14 msgid "\tP\t\tquit and output selected item(s) to stderr\n" msgstr "" "\tP\t\tesci e restituisci gli oggetti\n" "\t\t\tselezionati su stderr\n" #: help.h:15 msgid "\t^L\t\trefresh screen\n" msgstr "\t^L\t\tridisegna lo schermo\n" #: help.h:17 msgid "\tarrows / j,k\tscroll list\n" msgstr "\tarrows / j,k\tscorri la lista\n" #: help.h:18 msgid "\tenter\t\tview/edit item\n" msgstr "\tenter\t\tmostra/modifica oggetto\n" #: help.h:19 msgid "\ta\t\tadd item\n" msgstr "\ta\t\taggiungi oggetto\n" #: help.h:20 msgid "\tr / del\t\tremove selected items\n" msgstr "\tr / del\t\tcancella oggetti selezionati\n" #: help.h:21 msgid "\tM\t\tmerge selected items (into top one)\n" msgstr "" #: help.h:22 msgid "\tD\t\tduplicate item\n" msgstr "\tD\t\tduplica oggetto\n" #: help.h:23 #, fuzzy msgid "\tU\t\tremove duplicates\n" msgstr "\tD\t\tduplica oggetto\n" #: help.h:25 msgid "\tspace\t\tselect item\n" msgstr "\tspace\t\tseleziona oggetto\n" #: help.h:26 msgid "\t+\t\tselect all\n" msgstr "\t+\t\tseleziona tutti\n" #: help.h:27 msgid "\t-\t\tunselect all\n" msgstr "\t-\t\tdeseleziona tutti\n" #: help.h:28 msgid "\t*\t\tinvert selection\n" msgstr "\t*\t\tinverti selezione\n" #: help.h:30 msgid "\tw\t\twrite database to disk\n" msgstr "\tw\t\tscrivi database su disco\n" #: help.h:31 msgid "\tl\t\tread database from disk\n" msgstr "\tl\t\tleggi database da disco\n" #: help.h:32 msgid "\tC\t\tclear whole database\n" msgstr "\tC\t\tcancella l'intero database\n" #: help.h:33 msgid "\ti\t\timport database\n" msgstr "\ti\t\timporta database\n" #: help.h:34 msgid "\te\t\texport database\n" msgstr "\te\t\tesporta database\n" #: help.h:35 msgid "\tp\t\tprint database\n" msgstr "\tp\t\tstampa database\n" #: help.h:36 msgid "\to\t\topen database\n" msgstr "\to\t\tapri database\n" #: help.h:38 msgid "\ts\t\tsort database\n" msgstr "\ts\t\tordina database\n" #: help.h:39 msgid "\tS\t\t\"surname sort\"\n" msgstr "\tS\t\tordinamento per cognome\n" #: help.h:40 msgid "\tF\t\tsort by field (defined in configuration file)\n" msgstr "" "\tF\t\tordina per campo (definito nel file di\n" "\t\t\tconfigurazione)\n" #: help.h:42 msgid "\t/\t\tsearch\n" msgstr "\t/\t\tcerca\n" #: help.h:43 msgid "\t\\\t\tsearch next occurrence\n" msgstr "\t\\\t\tricerca occorrenza successiva\n" #: help.h:45 msgid "\tA\t\tmove current item up\n" msgstr "\tA\t\tmuovi oggetto corrente in alto\n" #: help.h:46 msgid "\tZ\t\tmove current item down\n" msgstr "\tZ\t\tmuovi oggetto corrente in basso\n" #: help.h:48 msgid "\tm\t\tsend mail with mutt\n" msgstr "\tm\t\tspedisci mail con mutt\n" #: help.h:49 msgid "\tv\t\tview URL with web browser\n" msgstr "\tv\t\tmostra URL con browser html\n" #: help.h:57 msgid "\tarrows/h,l\t\tchange tab\n" msgstr "\tfrecce/h,l\tcambia tab\n" #: help.h:59 msgid "\tq\t\t\tquit to main screen\n" msgstr "\tq\t\t\tvai allo schermo principale\n" #: help.h:61 msgid "\t1 - 5 A - Z\t\tedit fields\n" msgstr "\t1 - 5 A - Z\t\tmodifica campi\n" #: help.h:63 msgid "\tk or <\t\t\tprevious item\n" msgstr "\tk or <\t\t\toggetto precedente\n" #: help.h:64 msgid "\tj or >\t\t\tnext item\n" msgstr "\tj or >\t\t\toggetto successivo\n" #: help.h:66 msgid "\tr\t\t\troll e-mail addresses up\n" msgstr "\tr\t\t\tporta verso l'alto indirizzi e-mail\n" #: help.h:67 msgid "\tESC-r\t\t\troll e-mail addresses down\n" msgstr "\tESC-r\t\t\tporta verso il basso indirizzi e-mail\n" #: help.h:69 msgid "\tu\t\t\tundo\n" msgstr "\tu\t\t\tannulla\n" #: help.h:71 msgid "\tm\t\t\tsend mail with mutt\n" msgstr "\tm\t\t\tspedisci mail con mutt\n" #: help.h:72 msgid "\tv\t\t\tview url with web browser\n" msgstr "\tv\t\t\tmostra url con browser html\n" #: options.c:272 msgid "quote mismatch" msgstr "manca una virgoletta" #: options.c:278 msgid "no assignment character found" msgstr "errore di assegnamento" #: options.c:281 msgid "error in comma separated list" msgstr "errore nei valori separati da virgole" #: options.c:311 options.c:330 msgid "invalid value" msgstr "valore non valido" #: options.c:351 msgid "unknown option" msgstr "opzione sconosciuta" #: options.c:363 #, c-format msgid "" "valid values for the 'preserve_fields' option are 'all', " "'standard' (default), and 'none'\n" msgstr "" "valori validi per l'opzione 'preserved_fields' sono 'all', " "'standard' (predefinito), e 'none'\n" #: options.c:372 #, c-format msgid "" "valid values for the 'address_style' option are 'eu' (default), 'uk', and " "'us'\n" msgstr "" "valori validi per l'opzione 'address_style' sono 'eu' (predefinito), 'uk', e " "'us'\n" #: options.c:394 msgid "invalid value assignment" msgstr "assegnazione di valore errata" #: options.c:402 msgid "" "customfield: obsolete command - please use the 'field' and 'view' commands " "instead" msgstr "customfield: comando obsoleto - usare i comandi 'field' e 'view'" #: options.c:420 msgid "no view name provided" msgstr "nessun nome della vista fornito" #: options.c:450 msgid "no field identifier provided" msgstr "nessun identificatore di campo fornito" #: options.c:456 msgid "no field name provided" msgstr "nome campo non fornito" #: options.c:512 #, c-format msgid "%s: parse error at line %d: " msgstr "%s: errore interpretazione linea %d: " #: options.c:516 #, c-format msgid "unknown token %s\n" msgstr "istruzione %s sconosciuta\n" #: ui.c:234 #, c-format msgid "Your terminal size is %dx%d\n" msgstr "La dimensione del terminale è %dx%d\n" #: ui.c:235 #, c-format msgid "Terminal is too small. Minimum terminal size for abook is %dx%d\n" msgstr "" "Il terminale è troppo piccolo. La dimensione minima per abook è %dx%d\n" #: ui.c:423 msgid " (Y/n)?" msgstr " (S/n)?" #: ui.c:423 msgid " (y/N)?" msgstr " (s/N)?" #: ui.c:502 msgid "help" msgstr "aiuto" #: ui.c:511 msgid "Press any key to continue..." msgstr "Premi un tasto per continuare..." #: ui.c:656 msgid "Remove selected item(s)" msgstr "Cancella l'oggetto/gli oggetti selezionato/i" #: ui.c:666 #, fuzzy msgid "Merge selected items" msgstr "Nessun oggetto selezionato" #: ui.c:675 #, fuzzy msgid "Remove duplicates" msgstr "Cancella l'oggetto/gli oggetti selezionato/i" #: ui.c:685 msgid "Clear WHOLE database" msgstr "Cancella TUTTO il database" #: ui.c:718 msgid "Search hit bottom, continuing at top" msgstr "La ricerca è finita, continuo dall'inizio" #: ui.c:744 #, c-format msgid "Your current data will be lost - Press '%c' to continue" msgstr "I dati correnti saranno persi - Premi '%c' per continuare" #: ui.c:769 msgid "Print ll, print elected, or ancel?" msgstr "Stampa utti, stampa elezionati, o ancella?" #: ui.c:775 msgid "No selected items" msgstr "Nessun oggetto selezionato" #: ui.c:801 msgid "File to open: " msgstr "File da aprire:" #: ui.c:811 msgid "Save current database" msgstr "Salva il database corrente" #: ui.c:819 msgid "Sorry, the specified file appears not to be a valid abook addressbook" msgstr "Mi dispiace, il file selezionato non è una rubrica valida per Abook" #: views.c:87 msgid "undeclared field" msgstr "campo non dichiarato" #: views.c:92 msgid "maximal number of fields per view reached" msgstr "raggiunto numero massimo di campi per vista" #: views.c:95 msgid "field already in this view" msgstr "campo già presente in questa vista" #: views.c:139 msgid "CONTACT" msgstr "CONTATTO" #: views.c:140 msgid "ADDRESS" msgstr "INDIRIZZO" #: views.c:142 msgid "PHONE" msgstr "TELEFONO" #: views.c:143 msgid "OTHER" msgstr "ALTRO" #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169 msgid "CUSTOM" msgstr "PERSONALIZZATO" #: views.c:165 msgid "Custom1" msgstr "Personalizzato 1" #: views.c:166 msgid "Custom2" msgstr "Personalizzato 2" #: views.c:167 msgid "Custom3" msgstr "Personalizzato 3" #: views.c:168 msgid "Custom4" msgstr "Personalizzato 4" #: views.c:169 msgid "Custom5" msgstr "Personalizzato 5" #~ msgid "GnomeCard (VCard) addressbook" #~ msgstr "Rubrica GnomeCard (VCard)" #~ msgid "sorry, input for this field type is not yet implemented" #~ msgstr "mi dispiace, questo tipo di campo non e' ancora stato implementato" #~ msgid "?:help c:contact a:address p:phone o:other" #~ msgstr "?:aiuto c:contatto a:indirizzo p:telefono o:altro" #~ msgid "invalid custom field number" #~ msgstr "numero di campo personalizzato non valido" abook-0.6.1/po/insert-header.sin0000644000175000017500000000124012604110363014657 0ustar yugyug# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } abook-0.6.1/po/fr.po0000644000175000017500000005162412604110363012374 0ustar yugyug# French translation for abook package. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the abook package. # Cedric Duval , 2005-2006. # Michèle Garoche , 2006. # msgid "" msgstr "" "Project-Id-Version: abook\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-01-17 14:44+0100\n" "PO-Revision-Date: 2006-09-08 14:37+0200\n" "Last-Translator: Michèle Garoche \n" "Language-Team: french\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: abook.c:99 #, c-format msgid "Cannot create directory %s\n" msgstr "Impossible de créer le répertoire %s\n" #: abook.c:105 #, c-format msgid "%s is not a directory\n" msgstr "%s n'est pas un répertoire\n" #: abook.c:123 #, c-format msgid "Memory allocation failure: %s\n" msgstr "Erreur d'allocation mémoire: %s\n" #: abook.c:134 #, c-format msgid "Press enter to continue...\n" msgstr "Appuyez sur entrée pour continuer...\n" #: abook.c:149 #, c-format msgid "File %s is not writeable" msgstr "Impossible d'écrire dans le fichier %s" #: abook.c:154 msgid "If you continue all changes will be lost. Do you want to continue?" msgstr "" "Si vous continuez, vos modifications seront perdues. Voulez-vous continuer ?" #: abook.c:173 msgid "Save database" msgstr "Sauvegarder la base de données" #: abook.c:175 msgid "Quit without saving" msgstr "Quitter sans sauvegarder" #: abook.c:233 #, c-format msgid "%s is not a valid HOME directory\n" msgstr "%s n'est pas un répertoire personnel (HOME) valide\n" #: abook.c:264 #, c-format msgid "" "Cannot combine options --mutt-query, --convert, --add-email or --add-email-" "quiet\n" msgstr "" "Impossible de combiner les options --mutt-query, --convert, --add-email ou --" "add-email-quiet\n" #: abook.c:295 #, c-format msgid "please use option --%s after --convert option\n" msgstr "Veuillez utiliser l'option --%s après l'option --convert\n" #: abook.c:382 #, fuzzy, c-format msgid "please use option --outformat after --convert or --mutt-query option\n" msgstr "Veuillez utiliser l'option --%s après l'option --convert\n" #: abook.c:420 #, fuzzy, c-format msgid "Invalid custom format string\n" msgstr "Valeur de champ invalide pour le classement" #: abook.c:428 #, c-format msgid "%s: unrecognized arguments on command line\n" msgstr "%s: paramètres de ligne de commande non reconnus\n" #: abook.c:450 msgid " -h\t--help\t\t\t\tshow usage" msgstr " -h\t--help\t\t\t\tafficher l'aide" #: abook.c:451 msgid " -C\t--config\t\t\tuse an alternative configuration file" msgstr "" " -C\t--config\t\tutiliser un autre fichier de configuration" #: abook.c:452 msgid "\t--datafile\t\t\tuse an alternative addressbook file" msgstr "\t--datafile\t\tutiliser un autre carnet d'adresses" #: abook.c:453 msgid "\t--mutt-query\t\tmake a query for mutt" msgstr "\t--mutt-query\t\teffectuer une requête pour mutt" #: abook.c:454 msgid "" "\t--add-email\t\t\tread an e-mail message from stdin and\n" "\t\t\t\t\tadd the sender to the addressbook" msgstr "" "\t--add-email\t\t\tlire un message électronique depuis\n" "\t\t\t\t\tl'entrée standard et ajouter\n" "\t\t\t\t\tl'expéditeur au carnet d'adresses" #: abook.c:458 msgid "" "\t--add-email-quiet\t\tsame as --add-email but doesn't\n" "\t\t\t\t\trequire to confirm adding" msgstr "" "\t--add-email-quiet\t\tcomme --add-email mais sans nécessité de confirmer\n" "\t\t\t\t\tl'ajout" #: abook.c:462 msgid "\t--convert\t\t\tconvert address book files" msgstr "\t--convert\t\t\tconvertir des carnets d'adresses" #: abook.c:463 msgid "\toptions to use with --convert:" msgstr "\toptions à utiliser avec --convert:" #: abook.c:464 msgid "\t--informat\t\tformat for input file" msgstr "\t--informat\t\tformat du fichier source" #: abook.c:465 msgid "\t\t\t\t\t(default: abook)" msgstr "\t\t\t\t\t(défaut: abook)" #: abook.c:466 msgid "\t--infile\t\t\tsource file" msgstr "\t--infile\t\t\tfichier source" #: abook.c:467 msgid "\t\t\t\t\t(default: stdin)" msgstr "\t\t\t\t\t(défaut: entrée standard)" #: abook.c:468 msgid "\t--outformat\t\tformat for output file" msgstr "\t--outformat\t\tformat du fichier de destination" #: abook.c:469 msgid "\t\t\t\t\t(default: text)" msgstr "\t\t\t\t\t(défaut: texte)" #: abook.c:470 msgid "\t--outfile\t\t\tdestination file" msgstr "\t--outfile\t\t\tfichier de destination" #: abook.c:471 msgid "\t\t\t\t\t(default: stdout)" msgstr "\t\t\t\t\t(défaut: sortie standard)" #: abook.c:472 #, fuzzy msgid "\t--outformatstr\t \tformat to use for \"custom\" --outformat" msgstr "\t--outformat\t\tformat du fichier de destination" #: abook.c:473 msgid "\t\t\t\t\t(default: \"{nick} ({name}): {mobile}\")" msgstr "" #: abook.c:474 msgid "\t--formats\t\t\tlist available formats" msgstr "\t--formats\t\t\tlister les formats disponibles" #: abook.c:528 #, c-format msgid "Cannot open database\n" msgstr "Impossible d'ouvrir la base de données\n" #: abook.c:654 #, c-format msgid "too few arguments to make conversion\n" msgstr "trop peu de paramètres pour effectuer la conversion\n" #: abook.c:655 #, c-format msgid "try --help\n" msgstr "essayez --help\n" #: abook.c:660 #, c-format msgid "" "input and output formats are the same\n" "exiting...\n" msgstr "" "la source et la destination sont identiques\n" "arrêt...\n" #: abook.c:674 #, c-format msgid "input format %s not supported\n" msgstr "le format source %s n'est pas géré\n" #: abook.c:678 #, c-format msgid "cannot read file %s\n" msgstr "Impossible de lire le fichier %s\n" #: abook.c:687 #, c-format msgid "output format %s not supported\n" msgstr "le format de destination %s n'est pas géré\n" #: abook.c:693 #, c-format msgid "cannot write file %s\n" msgstr "impossible d'écrire le fichier %s\n" #: abook.c:714 #, c-format msgid "cannot open %s\n" msgstr "impossible d'ouvrir %s\n" #: abook.c:717 #, c-format msgid "%d item(s) added to %s\n" msgstr "%d entrées ajoutées à %s\n" #: abook.c:719 msgid "Valid sender address not found" msgstr "Aucune adresse d'expéditeur valide trouvée" #: abook.c:760 #, c-format msgid "Address %s already in addressbook\n" msgstr "L'adresse %s figure déjà dans le carnet d'adresses\n" #: abook.c:770 #, c-format msgid "" "cannot open /dev/tty\n" "you may want to use --add-email-quiet\n" msgstr "" "impossible d'ouvrir /dev/tty\n" "peut-être souhaitez-vous utiliser --add-email-quiet\n" #: abook.c:776 #, c-format msgid "Add \"%s <%s>\" to %s? (%c/%c)\n" msgstr "Ajouter \"%s <%s>\" à %s ? (%c/%c)\n" #: abook.c:780 abook.c:787 ui.c:434 ui.c:746 msgid "keybinding for yes|y" msgstr "o" #: abook.c:781 abook.c:783 ui.c:432 msgid "keybinding for no|n" msgstr "n" #: abook.c:808 #, c-format msgid "stdin is a directory or cannot stat stdin\n" msgstr "stdin est un répertoire, ou impossible d'en quérir son état\n" #: abook.h:16 msgid "q:quit ?:help a:add r:remove" msgstr "q:quitter ?:aide a:ajouter r:supprimer" #: database.c:45 msgid "Name" msgstr "Nom" #: database.c:46 msgid "E-mail addresses" msgstr "Adresses email" #: database.c:47 msgid "Address" msgstr "Adresse" #: database.c:48 msgid "Address2" msgstr "Adresse2" #: database.c:49 msgid "City" msgstr "Ville" #: database.c:50 msgid "State/Province" msgstr "État/Province" #: database.c:51 msgid "ZIP/Postal Code" msgstr "Code postal" #: database.c:52 msgid "Country" msgstr "Pays" #: database.c:53 msgid "Home Phone" msgstr "Téléphone domicile" #: database.c:54 msgid "Work Phone" msgstr "Téléphone travail" #: database.c:55 msgid "Fax" msgstr "Fax" #: database.c:56 msgid "Mobile" msgstr "Portable" #: database.c:57 msgid "Nickname/Alias" msgstr "Surnom/Pseudo" #: database.c:58 msgid "URL" msgstr "URL" #: database.c:59 msgid "Notes" msgstr "Notes" #: database.c:60 msgid "Anniversary day" msgstr "Date d'anniversaire" #: database.c:61 msgid "Groups" msgstr "" #: database.c:167 msgid "field already defined" msgstr "champ déjà défini" #: database.c:171 msgid "standard field does not need to be declared" msgstr "les champs standard n'ont pas besoin d'être déclarés" #: database.c:186 msgid "unknown type" msgstr "type inconnu" #: database.c:648 msgid "Invalid field value defined in configuration" msgstr "Valeur de champ invalide définie dans la configuration" #: database.c:651 msgid "Invalid field value for sorting" msgstr "Valeur de champ invalide pour le classement" #: edit.c:59 msgid "Tab name too wide for screen" msgstr "Intitulé d'onglet trop large pour l'écran" #: edit.c:360 msgid "keybindings_new_123456789|n123456789" msgstr "n123456789" #: edit.c:362 #, c-format msgid "Choose %s to modify (<1>%s%c%s%s." msgstr "Choisir %s à modifier (<1>%s%c%s%s." #: edit.c:363 msgid "email" msgstr "email" #: edit.c:363 msgid "item" msgstr "entrée" #: edit.c:368 msgid " or ew" msgstr " ou nouveau" #: edit.c:386 msgid "E-mail: " msgstr "Emails: " #: edit.c:386 msgid "Item: " msgstr "Entrée: " #: edit.c:460 msgid "%Y-%M-%D" msgstr "" #: edit.c:461 msgid "--%M-%D" msgstr "" #: edit.c:539 msgid "Day: " msgstr "Jour: " #: edit.c:539 msgid "Month: " msgstr "Mois: " #: edit.c:539 msgid "Year (optional): " msgstr "Année (optionnelle): " #: edit.c:569 msgid "Invalid date" msgstr "Date invalide" #: edit.c:776 msgid "Name: " msgstr "Nom: " #: edit.h:18 msgid "?:help q:quit editor" msgstr "?: aide q: quitter l'éditeur" #: filter.c:88 filter.c:100 msgid "abook native format" msgstr "format natif abook" #: filter.c:89 msgid "ldif / Netscape addressbook" msgstr "ldif / carnet d'adresses Netscape" #: filter.c:90 filter.c:103 filter.c:121 msgid "mutt alias" msgstr "alias mutt" #: filter.c:91 filter.c:106 msgid "pine addressbook" msgstr "carnet d'adresses pine" #: filter.c:92 filter.c:107 msgid "comma separated values" msgstr "valeurs délimitées par des virgules" #: filter.c:93 filter.c:108 msgid "comma separated values (all fields)" msgstr "valeurs délimitées par des virgules (tous les champs)" #: filter.c:94 filter.c:109 msgid "Palm comma separated values" msgstr "valeur délimitées par des virgules, format Palm" #: filter.c:95 msgid "vCard file" msgstr "" #: filter.c:101 msgid "ldif / Netscape addressbook (.4ld)" msgstr "ldif / carnet d'adresses Netscape (.41d)" #: filter.c:102 filter.c:120 msgid "vCard 2 file" msgstr "" #: filter.c:104 msgid "mutt query format (internal use)" msgstr "" #: filter.c:105 msgid "html document" msgstr "document html" #: filter.c:110 msgid "elm alias" msgstr "alias elm" #: filter.c:111 msgid "plain text" msgstr "texte simple" #: filter.c:112 msgid "Wanderlust address book" msgstr "carnet d'adresses Wanderlust" #: filter.c:113 msgid "Spruce address book" msgstr "carnet d'adresses Spruce" #: filter.c:114 msgid "BSD calendar" msgstr "Calendrier BSD" #: filter.c:115 filter.c:122 #, fuzzy msgid "Custom format" msgstr "Personnalisé1" #: filter.c:135 #, fuzzy msgid "input formats:" msgstr "entrée:" #: filter.c:142 #, fuzzy msgid "output formats:" msgstr "sortie:" #: filter.c:149 msgid "query-compatible output formats:" msgstr "" #: filter.c:214 msgid "import database" msgstr "importer la base de données" #: filter.c:216 filter.c:345 msgid "please select a filter" msgstr "veuillez choisir un filtre" #: filter.c:224 filter.c:353 msgid "x -\tcancel" msgstr "x - \tannuler" #: filter.c:245 filter.c:391 msgid "Filename: " msgstr "Nom de fichier: " #: filter.c:252 msgid "Error occured while opening the file" msgstr "Une erreur est survenue à l'ouverture du fichier" #: filter.c:254 msgid "File does not seem to be a valid addressbook" msgstr "Le fichier spécifié ne semble pas être un carnet d'adresses valide" #: filter.c:343 msgid "export database" msgstr "exporter la base de données" #: filter.c:376 msgid "Export ll, export elected, or ancel?" msgstr "Exporter out, exporter les entrées électionnées, ou nnuler ?" #: filter.c:377 ui.c:769 msgid "keybindings:all/selected/cancel|asc" msgstr "tsa" #: filter.c:398 msgid "Error occured while exporting" msgstr "Une erreur est survenue lors de l'exportation" #: filter.c:2469 #, c-format msgid "%02d/%02d\tAnniversary of %s\n" msgstr "%02d/%02d\tAnniversaire de %s\n" #: filter.c:2498 #, c-format msgid "parse_custom_format: fmt_string or ft not allocated\n" msgstr "" #: filter.c:2517 #, c-format msgid "parse_custom_format: invalid placeholder: {%s}\n" msgstr "" #: filter.c:2565 #, c-format msgid "%s: invalid format, index %ld\n" msgstr "" #: help.h:11 msgid "\t?\t\thelp\n" msgstr "\t?\t\taide\n" #: help.h:12 msgid "\tq\t\tquit\n" msgstr "\tq\t\tquitter\n" #: help.h:13 msgid "\tQ\t\tquit without saving\n" msgstr "\tQ\t\tquitter sans sauvegarder\n" #: help.h:14 msgid "\tP\t\tquit and output selected item(s) to stderr\n" msgstr "" "\tP\t\tquitter et afficher les entrées sélectionnées\n" "\t\t\tsur la sortie d'erreur\n" #: help.h:15 msgid "\t^L\t\trefresh screen\n" msgstr "\t^L\t\trafraîchir l'écran\n" #: help.h:17 msgid "\tarrows / j,k\tscroll list\n" msgstr "\tflèches / j,k\tse déplacer dans la liste\n" #: help.h:18 msgid "\tenter\t\tview/edit item\n" msgstr "\tentrée\t\tvoir/éditer une entrée\n" #: help.h:19 msgid "\ta\t\tadd item\n" msgstr "\ta\t\tajouter une entrée\n" #: help.h:20 msgid "\tr / del\t\tremove selected items\n" msgstr "\tr / suppr\tsupprimer les entrées sélectionnées\n" #: help.h:21 msgid "\tM\t\tmerge selected items (into top one)\n" msgstr "" #: help.h:22 msgid "\tD\t\tduplicate item\n" msgstr "\tD\t\tdupliquer une entrée\n" #: help.h:23 #, fuzzy msgid "\tU\t\tremove duplicates\n" msgstr "\tD\t\tdupliquer une entrée\n" #: help.h:25 msgid "\tspace\t\tselect item\n" msgstr "\tespace\t\tsélectionner une entrée\n" #: help.h:26 msgid "\t+\t\tselect all\n" msgstr "\t+\t\ttout sélectionner\n" #: help.h:27 msgid "\t-\t\tunselect all\n" msgstr "\t-\t\ttout désélectionner\n" #: help.h:28 msgid "\t*\t\tinvert selection\n" msgstr "\t*\t\tinverser la sélection\n" #: help.h:30 msgid "\tw\t\twrite database to disk\n" msgstr "\tw\t\técrire la base de données sur le disque\n" #: help.h:31 msgid "\tl\t\tread database from disk\n" msgstr "\tl\t\tlire la base de données depuis le disque\n" #: help.h:32 msgid "\tC\t\tclear whole database\n" msgstr "\tC\t\teffacer entièrement la base de données\n" #: help.h:33 msgid "\ti\t\timport database\n" msgstr "\ti\t\timporter une base de données\n" #: help.h:34 msgid "\te\t\texport database\n" msgstr "\te\t\texporter la base de données\n" #: help.h:35 msgid "\tp\t\tprint database\n" msgstr "\tp\t\timprimer la base de données\n" #: help.h:36 msgid "\to\t\topen database\n" msgstr "\to\t\touvrir une base de données\n" #: help.h:38 msgid "\ts\t\tsort database\n" msgstr "\ts\t\tclasser la base de données\n" #: help.h:39 msgid "\tS\t\t\"surname sort\"\n" msgstr "\tS\t\tclassement par nom de famille\n" #: help.h:40 msgid "\tF\t\tsort by field (defined in configuration file)\n" msgstr "" "\tF\t\tclassement par champ\n" "\t\t\t(défini dans le fichier de configuration)\n" #: help.h:42 msgid "\t/\t\tsearch\n" msgstr "\t/\t\trechercher\n" #: help.h:43 msgid "\t\\\t\tsearch next occurrence\n" msgstr "\t\\\t\trechercher la correspondance suivante\n" #: help.h:45 msgid "\tA\t\tmove current item up\n" msgstr "\tA\t\tdéplacer l'entrée courante vers le haut\n" #: help.h:46 msgid "\tZ\t\tmove current item down\n" msgstr "\tZ\t\tdéplacer l'entrée courante vers le bas\n" #: help.h:48 msgid "\tm\t\tsend mail with mutt\n" msgstr "\tm\t\tenvoyer un courrier électronique avec mutt\n" #: help.h:49 msgid "\tv\t\tview URL with web browser\n" msgstr "\tv\t\tvisualiser l'URL avec un navigateur web\n" #: help.h:57 msgid "\tarrows/h,l\t\tchange tab\n" msgstr "\tflèches/h,l\tchanger d'onglet\n" #: help.h:59 msgid "\tq\t\t\tquit to main screen\n" msgstr "\tq\t\tretourner à l'écran principal\n" #: help.h:61 msgid "\t1 - 5 A - Z\t\tedit fields\n" msgstr "\t1 - 5 A - Z\t\t\téditer les champs\n" #: help.h:63 msgid "\tk or <\t\t\tprevious item\n" msgstr "\tk ou <\t\t\tentrée précédente\n" #: help.h:64 msgid "\tj or >\t\t\tnext item\n" msgstr "\tj ou >\t\t\tentrée suivante\n" #: help.h:66 msgid "\tr\t\t\troll e-mail addresses up\n" msgstr "\tr\t\t\trotation des adresses email vers le haut\n" #: help.h:67 msgid "\tESC-r\t\t\troll e-mail addresses down\n" msgstr "\tESC-r\t\t\trotation des adresses email vers le bas\n" #: help.h:69 msgid "\tu\t\t\tundo\n" msgstr "\tu\t\t\tannuler\n" #: help.h:71 msgid "\tm\t\t\tsend mail with mutt\n" msgstr "\tm\t\t\tenvoyer un courrier électronique avec mutt\n" #: help.h:72 msgid "\tv\t\t\tview url with web browser\n" msgstr "\tv\t\t\tvisualiser l'URL avec un navigateur web\n" #: options.c:272 msgid "quote mismatch" msgstr "problème de correspondance de guillemets" #: options.c:278 msgid "no assignment character found" msgstr "pas de caractère d'affectation trouvé" #: options.c:281 msgid "error in comma separated list" msgstr "erreur dans la liste de valeurs délimitées par des virgules" #: options.c:311 options.c:330 msgid "invalid value" msgstr "valeur invalide" #: options.c:351 msgid "unknown option" msgstr "option inconnue" #: options.c:363 #, c-format msgid "" "valid values for the 'preserve_fields' option are 'all', " "'standard' (default), and 'none'\n" msgstr "" "les valeurs correctes pour 'preserve_fields' sont 'all', " "'standard' (défaut), et 'none'\n" #: options.c:372 #, c-format msgid "" "valid values for the 'address_style' option are 'eu' (default), 'uk', and " "'us'\n" msgstr "" "les valeurs correctes pour 'address_style' sont 'eu' (défaut), 'uk', et " "'us'\n" #: options.c:394 msgid "invalid value assignment" msgstr "affectation de valeur invalide" #: options.c:402 msgid "" "customfield: obsolete command - please use the 'field' and 'view' commands " "instead" msgstr "" "customfield: commande obsolète - veuillez utiliser les commandes 'field' et " "'view'" #: options.c:420 msgid "no view name provided" msgstr "aucun nom de vue donné" #: options.c:450 msgid "no field identifier provided" msgstr "aucun identifieur de champ donné" #: options.c:456 msgid "no field name provided" msgstr "aucun nom de champ donné" #: options.c:512 #, c-format msgid "%s: parse error at line %d: " msgstr "%s: erreur d'analyse lexicale à la ligne %d: " #: options.c:516 #, c-format msgid "unknown token %s\n" msgstr "symbole inconnu %s\n" #: ui.c:234 #, c-format msgid "Your terminal size is %dx%d\n" msgstr "La taille de votre terminal est de %dx%d\n" #: ui.c:235 #, c-format msgid "Terminal is too small. Minimum terminal size for abook is %dx%d\n" msgstr "Terminal trop petit. Taille minimale de terminal pour abook: %dx%d\n" #: ui.c:423 msgid " (Y/n)?" msgstr " (O/n) ?" #: ui.c:423 msgid " (y/N)?" msgstr " (o/N) ?" #: ui.c:502 msgid "help" msgstr "aide" #: ui.c:511 msgid "Press any key to continue..." msgstr "Appuyez sur une touche pour continuer..." #: ui.c:656 msgid "Remove selected item(s)" msgstr "Supprimer les entrées sélectionnées" #: ui.c:666 #, fuzzy msgid "Merge selected items" msgstr "Pas d'entrée sélectionnée" #: ui.c:675 #, fuzzy msgid "Remove duplicates" msgstr "Supprimer les entrées sélectionnées" #: ui.c:685 msgid "Clear WHOLE database" msgstr "Effacer ENTIÈREMENT la base de données" #: ui.c:718 msgid "Search hit bottom, continuing at top" msgstr "La recherche a atteint la fin, poursuite au début" #: ui.c:744 #, c-format msgid "Your current data will be lost - Press '%c' to continue" msgstr "Vos données actuelles seront perdues - Appuyez sur '%c' pour continuer" #: ui.c:769 msgid "Print ll, print elected, or ancel?" msgstr "Imprimer out, imprimer les entrées électionnées, ou nnuler ?" #: ui.c:775 msgid "No selected items" msgstr "Pas d'entrée sélectionnée" #: ui.c:801 msgid "File to open: " msgstr "Fichier à ouvrir: " #: ui.c:811 msgid "Save current database" msgstr "Sauvegarder la base de données" #: ui.c:819 msgid "Sorry, the specified file appears not to be a valid abook addressbook" msgstr "" "Désolé, le fichier spécifié ne semble pas être un carnet d'adresses valide" #: views.c:87 msgid "undeclared field" msgstr "champ non déclaré" #: views.c:92 msgid "maximal number of fields per view reached" msgstr "nombre maximal de champs par vue atteint" #: views.c:95 msgid "field already in this view" msgstr "ce champ est déjà dans cette vue" #: views.c:139 msgid "CONTACT" msgstr "CONTACT" #: views.c:140 msgid "ADDRESS" msgstr "ADRESSE" #: views.c:142 msgid "PHONE" msgstr "TÉLÉPHONE" #: views.c:143 msgid "OTHER" msgstr "AUTRE" #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169 msgid "CUSTOM" msgstr "PERSONNALISÉ" #: views.c:165 msgid "Custom1" msgstr "Personnalisé1" #: views.c:166 msgid "Custom2" msgstr "Personnalisé2" #: views.c:167 msgid "Custom3" msgstr "Personnalisé3" #: views.c:168 msgid "Custom4" msgstr "Personnalisé4" #: views.c:169 msgid "Custom5" msgstr "Personnalisé5" #~ msgid "GnomeCard (VCard) addressbook" #~ msgstr "carnet d'adresses GnomCard (VCard)" abook-0.6.1/po/en@quot.header0000644000175000017500000000226312604110363014205 0ustar yugyug# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # abook-0.6.1/po/en@boldquot.header0000644000175000017500000000247112604110363015047 0ustar yugyug# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # abook-0.6.1/po/de.po0000644000175000017500000005157712604110363012364 0ustar yugyug# German translations for abook package. # Copyright (C) 2005 Jaakko Heinonen # This file is distributed under the same license as the abook package. # Johannes Weißl , 2005. # Gerfried Fuchs , 2007-2010. # msgid "" msgstr "" "Project-Id-Version: abook 0.5.5pre1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-01-17 14:44+0100\n" "PO-Revision-Date: 2010-02-15 18:10+0100\n" "Last-Translator: Gerfried Fuchs \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" # Difficulties: how to translate tab, item, custom, comma separated values #: abook.c:99 #, c-format msgid "Cannot create directory %s\n" msgstr "Kann Verzeichnis %s nicht anlegen\n" #: abook.c:105 #, c-format msgid "%s is not a directory\n" msgstr "%s ist kein Verzeichnis\n" #: abook.c:123 #, c-format msgid "Memory allocation failure: %s\n" msgstr "Fehler beim Anfordern von Hauptspeicher: %s\n" #: abook.c:134 #, c-format msgid "Press enter to continue...\n" msgstr "Eingabetaste drücken, um fortzufahren...\n" #: abook.c:149 #, c-format msgid "File %s is not writeable" msgstr "Datei %s ist nicht beschreibbar" #: abook.c:154 msgid "If you continue all changes will be lost. Do you want to continue?" msgstr "Beim Fortfahren gehen alle Änderungen verloren. Fortfahren?" #: abook.c:173 msgid "Save database" msgstr "Speichere Datenbank" #: abook.c:175 msgid "Quit without saving" msgstr "Beenden ohne zu speichern" #: abook.c:233 #, c-format msgid "%s is not a valid HOME directory\n" msgstr "%s ist kein gültiges HOME Verzeichnis\n" #: abook.c:264 #, c-format msgid "" "Cannot combine options --mutt-query, --convert, --add-email or --add-email-" "quiet\n" msgstr "" "Die Optionen --mutt-query, --convert, --add-email und --add-email-" "quietkönnen nicht kombiniert werden\n" #: abook.c:295 #, c-format msgid "please use option --%s after --convert option\n" msgstr "Bitte die Option --%s nach der Option --convert angeben\n" #: abook.c:382 #, fuzzy, c-format msgid "please use option --outformat after --convert or --mutt-query option\n" msgstr "Bitte die Option --%s nach der Option --convert angeben\n" #: abook.c:420 #, fuzzy, c-format msgid "Invalid custom format string\n" msgstr "Ungültiger Feld-Wert für die Sortierung" #: abook.c:428 #, c-format msgid "%s: unrecognized arguments on command line\n" msgstr "%s: unbekannte Argumente auf der Kommandozeile\n" #: abook.c:450 msgid " -h\t--help\t\t\t\tshow usage" msgstr " -h\t--help\t\t\t\tHilfe anzeigen" #: abook.c:451 msgid " -C\t--config\t\t\tuse an alternative configuration file" msgstr " -C\t--config\t\t\tAlternative Config-Datei verwenden" #: abook.c:452 msgid "\t--datafile\t\t\tuse an alternative addressbook file" msgstr "\t--datafile\t\t\tAlternative Adressbuch-Datei verwenden" #: abook.c:453 msgid "\t--mutt-query\t\tmake a query for mutt" msgstr "\t--mutt-query\t\tMutt-Anfrage durchführen" #: abook.c:454 msgid "" "\t--add-email\t\t\tread an e-mail message from stdin and\n" "\t\t\t\t\tadd the sender to the addressbook" msgstr "" "\t--add-email\t\t\tE-Mail-Adresse von stdin lesen und\n" "\t\t\t\t\tAbsender zum Adressbuch hinzufügen" #: abook.c:458 msgid "" "\t--add-email-quiet\t\tsame as --add-email but doesn't\n" "\t\t\t\t\trequire to confirm adding" msgstr "" "\t--add-email-quiet\t\twie --add-email, aber man muss\n" "\t\t\t\t\tdas Hinzufügen nicht bestätigen" #: abook.c:462 msgid "\t--convert\t\t\tconvert address book files" msgstr "\t--convert\t\t\tAdressbuch-Dateien konvertieren" #: abook.c:463 msgid "\toptions to use with --convert:" msgstr "\tOptionen in Verbindung mit --convert:" #: abook.c:464 msgid "\t--informat\t\tformat for input file" msgstr "\t--informat\t\tFormat für Eingabedatei" #: abook.c:465 msgid "\t\t\t\t\t(default: abook)" msgstr "\t\t\t\t\t(Standard: abook)" #: abook.c:466 msgid "\t--infile\t\t\tsource file" msgstr "\t--infile\t\t\tQuelldatei" #: abook.c:467 msgid "\t\t\t\t\t(default: stdin)" msgstr "\t\t\t\t\t(Standard: stdin)" #: abook.c:468 msgid "\t--outformat\t\tformat for output file" msgstr "\t--outformat\t\tFormat für Ausgabedatei" #: abook.c:469 msgid "\t\t\t\t\t(default: text)" msgstr "\t\t\t\t\t(Standard: text)" #: abook.c:470 msgid "\t--outfile\t\t\tdestination file" msgstr "\t--outfile\t\t\tZieldatei" #: abook.c:471 msgid "\t\t\t\t\t(default: stdout)" msgstr "\t\t\t\t\t(Standard: stdout)" #: abook.c:472 #, fuzzy msgid "\t--outformatstr\t \tformat to use for \"custom\" --outformat" msgstr "\t--outformat\t\tFormat für Ausgabedatei" #: abook.c:473 msgid "\t\t\t\t\t(default: \"{nick} ({name}): {mobile}\")" msgstr "" #: abook.c:474 msgid "\t--formats\t\t\tlist available formats" msgstr "\t--formats\t\t\tVerfügbare Formate auflisten" #: abook.c:528 #, c-format msgid "Cannot open database\n" msgstr "Kann die Datenbank nicht öffnen\n" #: abook.c:654 #, c-format msgid "too few arguments to make conversion\n" msgstr "zu wenig Argumente um die Konvertierung durchzuführen\n" #: abook.c:655 #, c-format msgid "try --help\n" msgstr "versuche einmal --help\n" # I think "Abbruch" is better than e.g. "Beenden" #: abook.c:660 #, c-format msgid "" "input and output formats are the same\n" "exiting...\n" msgstr "" "Eingabe- und Ausgabedatei sind identisch\n" "Abbruch...\n" #: abook.c:674 #, c-format msgid "input format %s not supported\n" msgstr "Eingabeformat %s wird nicht unterstützt\n" #: abook.c:678 #, c-format msgid "cannot read file %s\n" msgstr "kann die Datei %s nicht lesen\n" #: abook.c:687 #, c-format msgid "output format %s not supported\n" msgstr "Ausgabeformat %s wird nicht unterstützt\n" #: abook.c:693 #, c-format msgid "cannot write file %s\n" msgstr "kann die Datei %s nicht schreiben\n" #: abook.c:714 #, c-format msgid "cannot open %s\n" msgstr "kann %s nicht öffnen\n" #: abook.c:717 #, c-format msgid "%d item(s) added to %s\n" msgstr "%d Element(e) zu %s hinzugefügt\n" #: abook.c:719 msgid "Valid sender address not found" msgstr "Keine gültige Absender-Adresse gefunden" #: abook.c:760 #, c-format msgid "Address %s already in addressbook\n" msgstr "Adresse %s befindet sich bereits im Adressbuch\n" # I don't want to translate 'you' with 'du' #: abook.c:770 #, c-format msgid "" "cannot open /dev/tty\n" "you may want to use --add-email-quiet\n" msgstr "" "kann /dev/tty nicht öffnen\n" "versuche es einmal mit --add-email-quiet\n" #: abook.c:776 #, c-format msgid "Add \"%s <%s>\" to %s? (%c/%c)\n" msgstr "Füge \"%s <%s>\" zu %s hinzu? (%c/%c)\n" #: abook.c:780 abook.c:787 ui.c:434 ui.c:746 msgid "keybinding for yes|y" msgstr "j" #: abook.c:781 abook.c:783 ui.c:432 msgid "keybinding for no|n" msgstr "n" #: abook.c:808 #, c-format msgid "stdin is a directory or cannot stat stdin\n" msgstr "" "Entweder ist stdin ein Verzeichnis, oder der Zustand vonstdin kann nicht " "ermittelt werden\n" #: abook.h:16 msgid "q:quit ?:help a:add r:remove" msgstr "q:Ende ?:Hilfe a:Hinzufügen r:Entfernen" #: database.c:45 msgid "Name" msgstr "Name" #: database.c:46 msgid "E-mail addresses" msgstr "E-Mail-Adressen" #: database.c:47 msgid "Address" msgstr "Adresse" #: database.c:48 msgid "Address2" msgstr "Adresse2" #: database.c:49 msgid "City" msgstr "Ort" # better translation? #: database.c:50 msgid "State/Province" msgstr "Bundesland" #: database.c:51 msgid "ZIP/Postal Code" msgstr "Postleitzahl" #: database.c:52 msgid "Country" msgstr "Land" # better translation? #: database.c:53 msgid "Home Phone" msgstr "Telefon (priv.)" # better translation? #: database.c:54 msgid "Work Phone" msgstr "Telefon (dienstl.)" #: database.c:55 msgid "Fax" msgstr "Fax" #: database.c:56 msgid "Mobile" msgstr "Mobiltelefon" #: database.c:57 msgid "Nickname/Alias" msgstr "Spitzname/Alias" #: database.c:58 msgid "URL" msgstr "URL" #: database.c:59 msgid "Notes" msgstr "Bemerkung" # Anniversary already _means_ day! #: database.c:60 msgid "Anniversary day" msgstr "Jahrestag" #: database.c:61 msgid "Groups" msgstr "" #: database.c:167 msgid "field already defined" msgstr "Feld bereits definiert" #: database.c:171 msgid "standard field does not need to be declared" msgstr "Standardfeld muss nicht deklariert werden" #: database.c:186 msgid "unknown type" msgstr "unbekannter Typ" #: database.c:648 msgid "Invalid field value defined in configuration" msgstr "Ungültiger Feld-Wert in der Konfiguration festgelegt" #: database.c:651 msgid "Invalid field value for sorting" msgstr "Ungültiger Feld-Wert für die Sortierung" #: edit.c:59 msgid "Tab name too wide for screen" msgstr "Kartei-Name zu breit für den Bildschirm" #: edit.c:360 msgid "keybindings_new_123456789|n123456789" msgstr "n123456789" #: edit.c:362 #, c-format msgid "Choose %s to modify (<1>%s%c%s%s." msgstr "%s zum Ändern wählen (<1>%s%c%s%s." #: edit.c:363 msgid "email" msgstr "E-Mail" #: edit.c:363 msgid "item" msgstr "Element" #: edit.c:368 msgid " or ew" msgstr " oder eu" #: edit.c:386 msgid "E-mail: " msgstr "E-Mails: " #: edit.c:386 msgid "Item: " msgstr "Element: " #: edit.c:460 msgid "%Y-%M-%D" msgstr "%Y-%M-%D" #: edit.c:461 msgid "--%M-%D" msgstr "--%M-%D" #: edit.c:539 msgid "Day: " msgstr "Tag: " #: edit.c:539 msgid "Month: " msgstr "Monat: " #: edit.c:539 msgid "Year (optional): " msgstr "Jahr (optional): " #: edit.c:569 msgid "Invalid date" msgstr "ungültiges Datum" #: edit.c:776 msgid "Name: " msgstr "Name: " #: edit.h:18 msgid "?:help q:quit editor" msgstr "?:Hilfe q:Editor beenden" #: filter.c:88 filter.c:100 msgid "abook native format" msgstr "abook-eigenes Format" #: filter.c:89 msgid "ldif / Netscape addressbook" msgstr "ldif / Netscape Adressbuch" #: filter.c:90 filter.c:103 filter.c:121 msgid "mutt alias" msgstr "mutt-Alias" #: filter.c:91 filter.c:106 msgid "pine addressbook" msgstr "pine-Adressbuch" #: filter.c:92 filter.c:107 msgid "comma separated values" msgstr "komma-separierte Werte" #: filter.c:93 filter.c:108 msgid "comma separated values (all fields)" msgstr "komma-separierte Werte (alle Felder)" #: filter.c:94 filter.c:109 msgid "Palm comma separated values" msgstr "Palm komma-separierte Werte" #: filter.c:95 msgid "vCard file" msgstr "" #: filter.c:101 msgid "ldif / Netscape addressbook (.4ld)" msgstr "ldif / Netscape Adressbuch (.4ld)" #: filter.c:102 filter.c:120 msgid "vCard 2 file" msgstr "" #: filter.c:104 msgid "mutt query format (internal use)" msgstr "" #: filter.c:105 msgid "html document" msgstr "HTML-Dokument" #: filter.c:110 msgid "elm alias" msgstr "elm alias" #: filter.c:111 msgid "plain text" msgstr "Klartext" #: filter.c:112 msgid "Wanderlust address book" msgstr "Wanderlust-Adressbuch" #: filter.c:113 msgid "Spruce address book" msgstr "Spruce-Adressbuch" #: filter.c:114 msgid "BSD calendar" msgstr "BSD-Kalender" #: filter.c:115 filter.c:122 #, fuzzy msgid "Custom format" msgstr "Benutzer1" #: filter.c:135 #, fuzzy msgid "input formats:" msgstr "Eingabe:" #: filter.c:142 #, fuzzy msgid "output formats:" msgstr "Ausgabe:" #: filter.c:149 msgid "query-compatible output formats:" msgstr "" #: filter.c:214 msgid "import database" msgstr "importiere Datenbank" #: filter.c:216 filter.c:345 msgid "please select a filter" msgstr "Bitte Filter auswählen" #: filter.c:224 filter.c:353 msgid "x -\tcancel" msgstr "x -\tabbrechen" #: filter.c:245 filter.c:391 msgid "Filename: " msgstr "Dateiname: " #: filter.c:252 msgid "Error occured while opening the file" msgstr "Fehler beim Öffnen der Datei" #: filter.c:254 msgid "File does not seem to be a valid addressbook" msgstr "Die Datei scheint kein gültiges Adressbuch zu sein" #: filter.c:343 msgid "export database" msgstr "exportiere Datenbank" # instead: Exportiere alle (a), exportiere ausgewählte (s), oder abbrechen (c)? #: filter.c:376 msgid "Export ll, export elected, or ancel?" msgstr "Exportiere lle, exportiere augewählte, oder brih ab?" #: filter.c:377 ui.c:769 msgid "keybindings:all/selected/cancel|asc" msgstr "asc" #: filter.c:398 msgid "Error occured while exporting" msgstr "Fehler beim Exportieren aufgetreten" #: filter.c:2469 #, c-format msgid "%02d/%02d\tAnniversary of %s\n" msgstr "%02d/%02d\tJahrestag von %s\n" #: filter.c:2498 #, c-format msgid "parse_custom_format: fmt_string or ft not allocated\n" msgstr "" #: filter.c:2517 #, c-format msgid "parse_custom_format: invalid placeholder: {%s}\n" msgstr "" #: filter.c:2565 #, c-format msgid "%s: invalid format, index %ld\n" msgstr "" #: help.h:11 msgid "\t?\t\thelp\n" msgstr "\t?\t\tHilfe\n" #: help.h:12 msgid "\tq\t\tquit\n" msgstr "\tq\t\tBeenden\n" #: help.h:13 msgid "\tQ\t\tquit without saving\n" msgstr "\tQ\t\tBeenden ohne zu speichern\n" #: help.h:14 msgid "\tP\t\tquit and output selected item(s) to stderr\n" msgstr "" "\tP\t\tBeenden und ausgewählte Elemente\n" "\t\t\tnach stderr ausgeben\n" #: help.h:15 msgid "\t^L\t\trefresh screen\n" msgstr "\t^L\t\tBildschirmanzeige aktualisieren\n" # instead of scroll: blättern? #: help.h:17 msgid "\tarrows / j,k\tscroll list\n" msgstr "\tPfeilt. / j,k\tListe scrollen\n" #: help.h:18 msgid "\tenter\t\tview/edit item\n" msgstr "\tEnter\t\tElement anzeigen/bearbeiten\n" #: help.h:19 msgid "\ta\t\tadd item\n" msgstr "\ta\t\tElement hinzufügen\n" #: help.h:20 msgid "\tr / del\t\tremove selected items\n" msgstr "\tr / Entf.\tAusgewählte Elemente entfernen\n" #: help.h:21 msgid "\tM\t\tmerge selected items (into top one)\n" msgstr "" #: help.h:22 msgid "\tD\t\tduplicate item\n" msgstr "\tD\t\tElement verdoppeln\n" #: help.h:23 #, fuzzy msgid "\tU\t\tremove duplicates\n" msgstr "\tD\t\tElement verdoppeln\n" #: help.h:25 msgid "\tspace\t\tselect item\n" msgstr "\tLeertaste\tElement auswählen\n" #: help.h:26 msgid "\t+\t\tselect all\n" msgstr "\t+\t\tAlle auswählen\n" #: help.h:27 msgid "\t-\t\tunselect all\n" msgstr "\t-\t\tAuswahl aufheben\n" #: help.h:28 msgid "\t*\t\tinvert selection\n" msgstr "\t*\t\tAuswahl umkehren\n" #: help.h:30 msgid "\tw\t\twrite database to disk\n" msgstr "\tw\t\tDatenbank auf die Festplatte speichern\n" #: help.h:31 msgid "\tl\t\tread database from disk\n" msgstr "\tl\t\tDatenbank von der Festplatte lesen\n" #: help.h:32 msgid "\tC\t\tclear whole database\n" msgstr "\tC\t\tGesamte Datenbank löschen\n" #: help.h:33 msgid "\ti\t\timport database\n" msgstr "\ti\t\tDatenbank importieren\n" #: help.h:34 msgid "\te\t\texport database\n" msgstr "\te\t\tDatenbank exportieren\n" #: help.h:35 msgid "\tp\t\tprint database\n" msgstr "\tp\t\tDatenbank ausdrucken\n" #: help.h:36 msgid "\to\t\topen database\n" msgstr "\to\t\tDatenbank öffnen\n" #: help.h:38 msgid "\ts\t\tsort database\n" msgstr "\ts\t\tDatenbank sortieren\n" #: help.h:39 msgid "\tS\t\t\"surname sort\"\n" msgstr "\tS\t\t\"Nachnamen-Sortierung\"\n" #: help.h:40 msgid "\tF\t\tsort by field (defined in configuration file)\n" msgstr "" "\tF\t\tNach Feld sortieren\n" "\t\t\t(wie in der Konfigurationsdatei festgelegt)\n" #: help.h:42 msgid "\t/\t\tsearch\n" msgstr "\t/\t\tSuchen\n" #: help.h:43 msgid "\t\\\t\tsearch next occurrence\n" msgstr "\t\\\t\tNach nächstem Eintrag suchen\n" #: help.h:45 msgid "\tA\t\tmove current item up\n" msgstr "\tA\t\tAktuelles Element nach oben verschieben\n" #: help.h:46 msgid "\tZ\t\tmove current item down\n" msgstr "\tZ\t\tAktuelles Element nach unten verschieben\n" #: help.h:48 msgid "\tm\t\tsend mail with mutt\n" msgstr "\tm\t\tE-Mail mit Mutt senden\n" #: help.h:49 msgid "\tv\t\tview URL with web browser\n" msgstr "\tv\t\tURL mit Web-Browser anzeigen\n" #: help.h:57 msgid "\tarrows/h,l\t\tchange tab\n" msgstr "\tPfeilt./h,l\t\tTab wechseln\n" #: help.h:59 msgid "\tq\t\t\tquit to main screen\n" msgstr "\tq\t\t\tZum Hauptschirm zurück kehren\n" #: help.h:61 msgid "\t1 - 5 A - Z\t\tedit fields\n" msgstr "\t1 - 5 A - Z\t\tFelder bearbeiten\n" #: help.h:63 msgid "\tk or <\t\t\tprevious item\n" msgstr "\tk or <\t\t\tVorheriges Element\n" #: help.h:64 msgid "\tj or >\t\t\tnext item\n" msgstr "\tj or >\t\t\tNächstes Element\n" #: help.h:66 msgid "\tr\t\t\troll e-mail addresses up\n" msgstr "\tr\t\t\tE-Mail-Adressen nach oben rotieren\n" #: help.h:67 msgid "\tESC-r\t\t\troll e-mail addresses down\n" msgstr "\tESC-r\t\t\tE-Mail-Adressen nach unten rotieren\n" #: help.h:69 msgid "\tu\t\t\tundo\n" msgstr "\tu\t\t\tRückgängig\n" #: help.h:71 msgid "\tm\t\t\tsend mail with mutt\n" msgstr "\tm\t\t\tE-Mail mit Mutt senden\n" #: help.h:72 msgid "\tv\t\t\tview url with web browser\n" msgstr "\tv\t\t\tURL mit Web-Browser anzeigen\n" #: options.c:272 msgid "quote mismatch" msgstr "fehlendes Hochkomma" #: options.c:278 msgid "no assignment character found" msgstr "kein Zuweisungszeichen gefunden" #: options.c:281 msgid "error in comma separated list" msgstr "Fehler in komma-separierter Liste" #: options.c:311 options.c:330 msgid "invalid value" msgstr "ungültiger Wert" #: options.c:351 msgid "unknown option" msgstr "unbekannte Option" #: options.c:363 #, c-format msgid "" "valid values for the 'preserve_fields' option are 'all', " "'standard' (default), and 'none'\n" msgstr "" "gültige Werte für die Option »preserve_fields« sind »all«, " "»standard« (Voreinstellung) und »none«\n" #: options.c:372 #, c-format msgid "" "valid values for the 'address_style' option are 'eu' (default), 'uk', and " "'us'\n" msgstr "" "gültige Werte für die Option »address_style« sind »eu« (Voreinstellung), " "»uk« und »us«\n" #: options.c:394 msgid "invalid value assignment" msgstr "ungültige Wertzuweisung" #: options.c:402 msgid "" "customfield: obsolete command - please use the 'field' and 'view' commands " "instead" msgstr "" "customfield: veralteter Befehl - verwenden Sie bitte die Befehle »field« und " "»view«" #: options.c:420 msgid "no view name provided" msgstr "kein Name für Ansicht angegeben" #: options.c:450 msgid "no field identifier provided" msgstr "keine Feldkennzeichnung angegeben" #: options.c:456 msgid "no field name provided" msgstr "kein Feldname angegeben" #: options.c:512 #, c-format msgid "%s: parse error at line %d: " msgstr "%s: Fehler beim Parsen in Zeile %d: " #: options.c:516 #, c-format msgid "unknown token %s\n" msgstr "unbekanntes Symbol %s\n" #: ui.c:234 #, c-format msgid "Your terminal size is %dx%d\n" msgstr "Die Größe des Terminals ist %dx%d.\n" #: ui.c:235 #, c-format msgid "Terminal is too small. Minimum terminal size for abook is %dx%d\n" msgstr "Das Terminal ist zu klein. Die minimale Größe für abook ist %dx%d.\n" #: ui.c:423 msgid " (Y/n)?" msgstr " (J/n)?" #: ui.c:423 msgid " (y/N)?" msgstr " (j/N)?" #: ui.c:502 msgid "help" msgstr "Hilfe" #: ui.c:511 msgid "Press any key to continue..." msgstr "Taste drücken, um fortzufahren..." # "Lösche ausgewählte(s) Element(e)" sounds silly ... plural form is ok. #: ui.c:656 msgid "Remove selected item(s)" msgstr "Lösche ausgewählte Elemente" #: ui.c:666 #, fuzzy msgid "Merge selected items" msgstr "Keine Elemente ausgewählt" # "Lösche ausgewählte(s) Element(e)" sounds silly ... plural form is ok. #: ui.c:675 #, fuzzy msgid "Remove duplicates" msgstr "Lösche ausgewählte Elemente" #: ui.c:685 msgid "Clear WHOLE database" msgstr "Lösche GESAMTE Datenbank" #: ui.c:718 msgid "Search hit bottom, continuing at top" msgstr "Suche hat das Ende erreicht, weiter am Anfang" # Why 'y', and not 'j'? # c-format #: ui.c:744 #, c-format msgid "Your current data will be lost - Press '%c' to continue" msgstr "Die aktuellen Daten sind verloren - Drücke '%c' um fortzufahren" # instead: Drucke alle (a), drucke ausgewählte (s), oder abbrechen (c)? #: ui.c:769 msgid "Print ll, print elected, or ancel?" msgstr "Drucke lle, drucke augewählte oder brih ab?" #: ui.c:775 msgid "No selected items" msgstr "Keine Elemente ausgewählt" #: ui.c:801 msgid "File to open: " msgstr "Öffne Datei: " #: ui.c:811 msgid "Save current database" msgstr "Speichere aktuelle Datenbank" #: ui.c:819 msgid "Sorry, the specified file appears not to be a valid abook addressbook" msgstr "" "Die angegebene Datei scheint leider kein gültiges abook Adressbuch zu sein" #: views.c:87 msgid "undeclared field" msgstr "undefiniertes Feld" #: views.c:92 msgid "maximal number of fields per view reached" msgstr "maximale Anzahl von Feldern für Ansicht erreicht" #: views.c:95 msgid "field already in this view" msgstr "Feld in dieser Ansicht bereits vorhanden" #: views.c:139 msgid "CONTACT" msgstr "KONTAKT" #: views.c:140 msgid "ADDRESS" msgstr "ADRESSE" #: views.c:142 msgid "PHONE" msgstr "TELEFON" #: views.c:143 msgid "OTHER" msgstr "ANDERE" #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169 msgid "CUSTOM" msgstr "BENUTZER" #: views.c:165 msgid "Custom1" msgstr "Benutzer1" #: views.c:166 msgid "Custom2" msgstr "Benutzer2" #: views.c:167 msgid "Custom3" msgstr "Benutzer3" #: views.c:168 msgid "Custom4" msgstr "Benutzer4" #: views.c:169 msgid "Custom5" msgstr "Benutzer5" #~ msgid "GnomeCard (VCard) addressbook" #~ msgstr "GnomeCard (VCard) Adressbuch" abook-0.6.1/po/boldquot.sed0000644000175000017500000000033112604110363013740 0ustar yugyugs/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g s/“/“/g s/â€/â€/g s/‘/‘/g s/’/’/g abook-0.6.1/po/abook.pot0000644000175000017500000003372212604110363013243 0ustar yugyug# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: abook 0.6.0pre2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-01-17 14:44+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: abook.c:99 #, c-format msgid "Cannot create directory %s\n" msgstr "" #: abook.c:105 #, c-format msgid "%s is not a directory\n" msgstr "" #: abook.c:123 #, c-format msgid "Memory allocation failure: %s\n" msgstr "" #: abook.c:134 #, c-format msgid "Press enter to continue...\n" msgstr "" #: abook.c:149 #, c-format msgid "File %s is not writeable" msgstr "" #: abook.c:154 msgid "If you continue all changes will be lost. Do you want to continue?" msgstr "" #: abook.c:173 msgid "Save database" msgstr "" #: abook.c:175 msgid "Quit without saving" msgstr "" #: abook.c:233 #, c-format msgid "%s is not a valid HOME directory\n" msgstr "" #: abook.c:264 #, c-format msgid "" "Cannot combine options --mutt-query, --convert, --add-email or --add-email-" "quiet\n" msgstr "" #: abook.c:295 #, c-format msgid "please use option --%s after --convert option\n" msgstr "" #: abook.c:382 #, c-format msgid "please use option --outformat after --convert or --mutt-query option\n" msgstr "" #: abook.c:420 #, c-format msgid "Invalid custom format string\n" msgstr "" #: abook.c:428 #, c-format msgid "%s: unrecognized arguments on command line\n" msgstr "" #: abook.c:450 msgid " -h\t--help\t\t\t\tshow usage" msgstr "" #: abook.c:451 msgid " -C\t--config\t\t\tuse an alternative configuration file" msgstr "" #: abook.c:452 msgid "\t--datafile\t\t\tuse an alternative addressbook file" msgstr "" #: abook.c:453 msgid "\t--mutt-query\t\tmake a query for mutt" msgstr "" #: abook.c:454 msgid "" "\t--add-email\t\t\tread an e-mail message from stdin and\n" "\t\t\t\t\tadd the sender to the addressbook" msgstr "" #: abook.c:458 msgid "" "\t--add-email-quiet\t\tsame as --add-email but doesn't\n" "\t\t\t\t\trequire to confirm adding" msgstr "" #: abook.c:462 msgid "\t--convert\t\t\tconvert address book files" msgstr "" #: abook.c:463 msgid "\toptions to use with --convert:" msgstr "" #: abook.c:464 msgid "\t--informat\t\tformat for input file" msgstr "" #: abook.c:465 msgid "\t\t\t\t\t(default: abook)" msgstr "" #: abook.c:466 msgid "\t--infile\t\t\tsource file" msgstr "" #: abook.c:467 msgid "\t\t\t\t\t(default: stdin)" msgstr "" #: abook.c:468 msgid "\t--outformat\t\tformat for output file" msgstr "" #: abook.c:469 msgid "\t\t\t\t\t(default: text)" msgstr "" #: abook.c:470 msgid "\t--outfile\t\t\tdestination file" msgstr "" #: abook.c:471 msgid "\t\t\t\t\t(default: stdout)" msgstr "" #: abook.c:472 msgid "\t--outformatstr\t \tformat to use for \"custom\" --outformat" msgstr "" #: abook.c:473 msgid "\t\t\t\t\t(default: \"{nick} ({name}): {mobile}\")" msgstr "" #: abook.c:474 msgid "\t--formats\t\t\tlist available formats" msgstr "" #: abook.c:528 #, c-format msgid "Cannot open database\n" msgstr "" #: abook.c:654 #, c-format msgid "too few arguments to make conversion\n" msgstr "" #: abook.c:655 #, c-format msgid "try --help\n" msgstr "" #: abook.c:660 #, c-format msgid "" "input and output formats are the same\n" "exiting...\n" msgstr "" #: abook.c:674 #, c-format msgid "input format %s not supported\n" msgstr "" #: abook.c:678 #, c-format msgid "cannot read file %s\n" msgstr "" #: abook.c:687 #, c-format msgid "output format %s not supported\n" msgstr "" #: abook.c:693 #, c-format msgid "cannot write file %s\n" msgstr "" #: abook.c:714 #, c-format msgid "cannot open %s\n" msgstr "" #: abook.c:717 #, c-format msgid "%d item(s) added to %s\n" msgstr "" #: abook.c:719 msgid "Valid sender address not found" msgstr "" #: abook.c:760 #, c-format msgid "Address %s already in addressbook\n" msgstr "" #: abook.c:770 #, c-format msgid "" "cannot open /dev/tty\n" "you may want to use --add-email-quiet\n" msgstr "" #: abook.c:776 #, c-format msgid "Add \"%s <%s>\" to %s? (%c/%c)\n" msgstr "" #: abook.c:780 abook.c:787 ui.c:434 ui.c:746 msgid "keybinding for yes|y" msgstr "" #: abook.c:781 abook.c:783 ui.c:432 msgid "keybinding for no|n" msgstr "" #: abook.c:808 #, c-format msgid "stdin is a directory or cannot stat stdin\n" msgstr "" #: abook.h:16 msgid "q:quit ?:help a:add r:remove" msgstr "" #: database.c:45 msgid "Name" msgstr "" #: database.c:46 msgid "E-mail addresses" msgstr "" #: database.c:47 msgid "Address" msgstr "" #: database.c:48 msgid "Address2" msgstr "" #: database.c:49 msgid "City" msgstr "" #: database.c:50 msgid "State/Province" msgstr "" #: database.c:51 msgid "ZIP/Postal Code" msgstr "" #: database.c:52 msgid "Country" msgstr "" #: database.c:53 msgid "Home Phone" msgstr "" #: database.c:54 msgid "Work Phone" msgstr "" #: database.c:55 msgid "Fax" msgstr "" #: database.c:56 msgid "Mobile" msgstr "" #: database.c:57 msgid "Nickname/Alias" msgstr "" #: database.c:58 msgid "URL" msgstr "" #: database.c:59 msgid "Notes" msgstr "" #: database.c:60 msgid "Anniversary day" msgstr "" #: database.c:61 msgid "Groups" msgstr "" #: database.c:167 msgid "field already defined" msgstr "" #: database.c:171 msgid "standard field does not need to be declared" msgstr "" #: database.c:186 msgid "unknown type" msgstr "" #: database.c:648 msgid "Invalid field value defined in configuration" msgstr "" #: database.c:651 msgid "Invalid field value for sorting" msgstr "" #: edit.c:59 msgid "Tab name too wide for screen" msgstr "" #: edit.c:360 msgid "keybindings_new_123456789|n123456789" msgstr "" #: edit.c:362 #, c-format msgid "Choose %s to modify (<1>%s%c%s%s." msgstr "" #: edit.c:363 msgid "email" msgstr "" #: edit.c:363 msgid "item" msgstr "" #: edit.c:368 msgid " or ew" msgstr "" #: edit.c:386 msgid "E-mail: " msgstr "" #: edit.c:386 msgid "Item: " msgstr "" #: edit.c:460 msgid "%Y-%M-%D" msgstr "" #: edit.c:461 msgid "--%M-%D" msgstr "" #: edit.c:539 msgid "Day: " msgstr "" #: edit.c:539 msgid "Month: " msgstr "" #: edit.c:539 msgid "Year (optional): " msgstr "" #: edit.c:569 msgid "Invalid date" msgstr "" #: edit.c:776 msgid "Name: " msgstr "" #: edit.h:18 msgid "?:help q:quit editor" msgstr "" #: filter.c:88 filter.c:100 msgid "abook native format" msgstr "" #: filter.c:89 msgid "ldif / Netscape addressbook" msgstr "" #: filter.c:90 filter.c:103 filter.c:121 msgid "mutt alias" msgstr "" #: filter.c:91 filter.c:106 msgid "pine addressbook" msgstr "" #: filter.c:92 filter.c:107 msgid "comma separated values" msgstr "" #: filter.c:93 filter.c:108 msgid "comma separated values (all fields)" msgstr "" #: filter.c:94 filter.c:109 msgid "Palm comma separated values" msgstr "" #: filter.c:95 msgid "vCard file" msgstr "" #: filter.c:101 msgid "ldif / Netscape addressbook (.4ld)" msgstr "" #: filter.c:102 filter.c:120 msgid "vCard 2 file" msgstr "" #: filter.c:104 msgid "mutt query format (internal use)" msgstr "" #: filter.c:105 msgid "html document" msgstr "" #: filter.c:110 msgid "elm alias" msgstr "" #: filter.c:111 msgid "plain text" msgstr "" #: filter.c:112 msgid "Wanderlust address book" msgstr "" #: filter.c:113 msgid "Spruce address book" msgstr "" #: filter.c:114 msgid "BSD calendar" msgstr "" #: filter.c:115 filter.c:122 msgid "Custom format" msgstr "" #: filter.c:135 msgid "input formats:" msgstr "" #: filter.c:142 msgid "output formats:" msgstr "" #: filter.c:149 msgid "query-compatible output formats:" msgstr "" #: filter.c:214 msgid "import database" msgstr "" #: filter.c:216 filter.c:345 msgid "please select a filter" msgstr "" #: filter.c:224 filter.c:353 msgid "x -\tcancel" msgstr "" #: filter.c:245 filter.c:391 msgid "Filename: " msgstr "" #: filter.c:252 msgid "Error occured while opening the file" msgstr "" #: filter.c:254 msgid "File does not seem to be a valid addressbook" msgstr "" #: filter.c:343 msgid "export database" msgstr "" #: filter.c:376 msgid "Export ll, export elected, or ancel?" msgstr "" #: filter.c:377 ui.c:769 msgid "keybindings:all/selected/cancel|asc" msgstr "" #: filter.c:398 msgid "Error occured while exporting" msgstr "" #: filter.c:2469 #, c-format msgid "%02d/%02d\tAnniversary of %s\n" msgstr "" #: filter.c:2498 #, c-format msgid "parse_custom_format: fmt_string or ft not allocated\n" msgstr "" #: filter.c:2517 #, c-format msgid "parse_custom_format: invalid placeholder: {%s}\n" msgstr "" #: filter.c:2565 #, c-format msgid "%s: invalid format, index %ld\n" msgstr "" #: help.h:11 msgid "\t?\t\thelp\n" msgstr "" #: help.h:12 msgid "\tq\t\tquit\n" msgstr "" #: help.h:13 msgid "\tQ\t\tquit without saving\n" msgstr "" #: help.h:14 msgid "\tP\t\tquit and output selected item(s) to stderr\n" msgstr "" #: help.h:15 msgid "\t^L\t\trefresh screen\n" msgstr "" #: help.h:17 msgid "\tarrows / j,k\tscroll list\n" msgstr "" #: help.h:18 msgid "\tenter\t\tview/edit item\n" msgstr "" #: help.h:19 msgid "\ta\t\tadd item\n" msgstr "" #: help.h:20 msgid "\tr / del\t\tremove selected items\n" msgstr "" #: help.h:21 msgid "\tM\t\tmerge selected items (into top one)\n" msgstr "" #: help.h:22 msgid "\tD\t\tduplicate item\n" msgstr "" #: help.h:23 msgid "\tU\t\tremove duplicates\n" msgstr "" #: help.h:25 msgid "\tspace\t\tselect item\n" msgstr "" #: help.h:26 msgid "\t+\t\tselect all\n" msgstr "" #: help.h:27 msgid "\t-\t\tunselect all\n" msgstr "" #: help.h:28 msgid "\t*\t\tinvert selection\n" msgstr "" #: help.h:30 msgid "\tw\t\twrite database to disk\n" msgstr "" #: help.h:31 msgid "\tl\t\tread database from disk\n" msgstr "" #: help.h:32 msgid "\tC\t\tclear whole database\n" msgstr "" #: help.h:33 msgid "\ti\t\timport database\n" msgstr "" #: help.h:34 msgid "\te\t\texport database\n" msgstr "" #: help.h:35 msgid "\tp\t\tprint database\n" msgstr "" #: help.h:36 msgid "\to\t\topen database\n" msgstr "" #: help.h:38 msgid "\ts\t\tsort database\n" msgstr "" #: help.h:39 msgid "\tS\t\t\"surname sort\"\n" msgstr "" #: help.h:40 msgid "\tF\t\tsort by field (defined in configuration file)\n" msgstr "" #: help.h:42 msgid "\t/\t\tsearch\n" msgstr "" #: help.h:43 msgid "\t\\\t\tsearch next occurrence\n" msgstr "" #: help.h:45 msgid "\tA\t\tmove current item up\n" msgstr "" #: help.h:46 msgid "\tZ\t\tmove current item down\n" msgstr "" #: help.h:48 msgid "\tm\t\tsend mail with mutt\n" msgstr "" #: help.h:49 msgid "\tv\t\tview URL with web browser\n" msgstr "" #: help.h:57 msgid "\tarrows/h,l\t\tchange tab\n" msgstr "" #: help.h:59 msgid "\tq\t\t\tquit to main screen\n" msgstr "" #: help.h:61 msgid "\t1 - 5 A - Z\t\tedit fields\n" msgstr "" #: help.h:63 msgid "\tk or <\t\t\tprevious item\n" msgstr "" #: help.h:64 msgid "\tj or >\t\t\tnext item\n" msgstr "" #: help.h:66 msgid "\tr\t\t\troll e-mail addresses up\n" msgstr "" #: help.h:67 msgid "\tESC-r\t\t\troll e-mail addresses down\n" msgstr "" #: help.h:69 msgid "\tu\t\t\tundo\n" msgstr "" #: help.h:71 msgid "\tm\t\t\tsend mail with mutt\n" msgstr "" #: help.h:72 msgid "\tv\t\t\tview url with web browser\n" msgstr "" #: options.c:272 msgid "quote mismatch" msgstr "" #: options.c:278 msgid "no assignment character found" msgstr "" #: options.c:281 msgid "error in comma separated list" msgstr "" #: options.c:311 options.c:330 msgid "invalid value" msgstr "" #: options.c:351 msgid "unknown option" msgstr "" #: options.c:363 #, c-format msgid "" "valid values for the 'preserve_fields' option are 'all', " "'standard' (default), and 'none'\n" msgstr "" #: options.c:372 #, c-format msgid "" "valid values for the 'address_style' option are 'eu' (default), 'uk', and " "'us'\n" msgstr "" #: options.c:394 msgid "invalid value assignment" msgstr "" #: options.c:402 msgid "" "customfield: obsolete command - please use the 'field' and 'view' commands " "instead" msgstr "" #: options.c:420 msgid "no view name provided" msgstr "" #: options.c:450 msgid "no field identifier provided" msgstr "" #: options.c:456 msgid "no field name provided" msgstr "" #: options.c:512 #, c-format msgid "%s: parse error at line %d: " msgstr "" #: options.c:516 #, c-format msgid "unknown token %s\n" msgstr "" #: ui.c:234 #, c-format msgid "Your terminal size is %dx%d\n" msgstr "" #: ui.c:235 #, c-format msgid "Terminal is too small. Minimum terminal size for abook is %dx%d\n" msgstr "" #: ui.c:423 msgid " (Y/n)?" msgstr "" #: ui.c:423 msgid " (y/N)?" msgstr "" #: ui.c:502 msgid "help" msgstr "" #: ui.c:511 msgid "Press any key to continue..." msgstr "" #: ui.c:656 msgid "Remove selected item(s)" msgstr "" #: ui.c:666 msgid "Merge selected items" msgstr "" #: ui.c:675 msgid "Remove duplicates" msgstr "" #: ui.c:685 msgid "Clear WHOLE database" msgstr "" #: ui.c:718 msgid "Search hit bottom, continuing at top" msgstr "" #: ui.c:744 #, c-format msgid "Your current data will be lost - Press '%c' to continue" msgstr "" #: ui.c:769 msgid "Print ll, print elected, or ancel?" msgstr "" #: ui.c:775 msgid "No selected items" msgstr "" #: ui.c:801 msgid "File to open: " msgstr "" #: ui.c:811 msgid "Save current database" msgstr "" #: ui.c:819 msgid "Sorry, the specified file appears not to be a valid abook addressbook" msgstr "" #: views.c:87 msgid "undeclared field" msgstr "" #: views.c:92 msgid "maximal number of fields per view reached" msgstr "" #: views.c:95 msgid "field already in this view" msgstr "" #: views.c:139 msgid "CONTACT" msgstr "" #: views.c:140 msgid "ADDRESS" msgstr "" #: views.c:142 msgid "PHONE" msgstr "" #: views.c:143 msgid "OTHER" msgstr "" #: views.c:165 views.c:166 views.c:167 views.c:168 views.c:169 msgid "CUSTOM" msgstr "" #: views.c:165 msgid "Custom1" msgstr "" #: views.c:166 msgid "Custom2" msgstr "" #: views.c:167 msgid "Custom3" msgstr "" #: views.c:168 msgid "Custom4" msgstr "" #: views.c:169 msgid "Custom5" msgstr "" abook-0.6.1/po/Rules-quot0000644000175000017500000000340012604110363013415 0ustar yugyug# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header abook-0.6.1/po/POTFILES.in0000644000175000017500000000022112604110363013165 0ustar yugyug# List of source files which contain translatable strings abook.c abook.h database.c edit.c edit.h filter.c help.h list.c options.c ui.c views.c abook-0.6.1/po/Makevars.template0000644000175000017500000000341612604110363014727 0ustar yugyug# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = abook-0.6.1/po/Makevars0000644000175000017500000000350712604110363013116 0ustar yugyug# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=S_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Free Software Foundation, Inc. # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = LC_TIME abook-0.6.1/po/Makefile.in.in0000644000175000017500000003744212604110363014101 0ustar yugyug# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.18 GETTEXT_MACRO_VERSION = 0.18 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: check-macro-version all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. check-macro-version: @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: abook-0.6.1/po/LINGUAS0000644000175000017500000000005412604110363012441 0ustar yugyug# Set of available languages de fr it ja sv abook-0.6.1/options.h0000644000175000017500000000315712604110363012651 0ustar yugyug#ifndef _OPTIONS_H #define _OPTIONS_H #if 0 typedef int bool; #else # include /* bool */ #endif /* * token parsing options */ #define TOKEN_ALLOC (1<<1) /* allocate memory for the token */ #define TOKEN_EQUAL (1<<2) /* left hand value of assignment */ #define TOKEN_COMMA (1<<3) /* comma is a separator */ /* * bool options */ enum bool_opts { BOOL_AUTOSAVE, BOOL_SHOW_ALL_EMAILS, BOOL_MUTT_RETURN_ALL_EMAILS, BOOL_USE_ASCII_ONLY, BOOL_ADD_EMAIL_PREVENT_DUPLICATES, BOOL_SHOW_CURSOR, BOOL_USE_COLORS, BOOL_USE_MOUSE, BOOL_MAX }; /* * int options */ enum int_opts { INT_EMAILPOS, INT_EXTRAPOS, INT_SCROLL_SPEED, INT_MAXIMUM /* INT_MAX conflicts on some systems */ }; /* * string options */ enum str_opts { STR_EXTRA_COLUMN, STR_EXTRA_ALTERNATIVE, STR_INDEX_FORMAT, STR_MUTT_COMMAND, STR_PRINT_COMMAND, STR_WWW_COMMAND, STR_ADDRESS_STYLE, STR_PRESERVE_FIELDS, STR_SORT_FIELD, STR_COLOR_HEADER_FG, STR_COLOR_HEADER_BG, STR_COLOR_FOOTER_FG, STR_COLOR_FOOTER_BG, STR_COLOR_LIST_EVEN_FG, STR_COLOR_LIST_EVEN_BG, STR_COLOR_LIST_ODD_FG, STR_COLOR_LIST_ODD_BG, STR_COLOR_LIST_HEADER_FG, STR_COLOR_LIST_HEADER_BG, STR_COLOR_LIST_HIGHLIGHT_FG, STR_COLOR_LIST_HIGHLIGHT_BG, STR_COLOR_TAB_BORDER_FG, STR_COLOR_TAB_BORDER_BG, STR_COLOR_TAB_LABEL_FG, STR_COLOR_TAB_LABEL_BG, STR_COLOR_FIELD_NAME_FG, STR_COLOR_FIELD_NAME_BG, STR_COLOR_FIELD_VALUE_FG, STR_COLOR_FIELD_VALUE_BG, STR_MAX }; int opt_get_int(enum int_opts opt); bool opt_get_bool(enum bool_opts opt); char * opt_get_str(enum str_opts opt); void init_opts(); void free_opts(); int load_opts(char *filename); #endif abook-0.6.1/options.c0000644000175000017500000002551512604110363012646 0ustar yugyug /* * $Id$ * * by JH * * Copyright (C) Jaakko Heinonen * */ #include #include #include #include #include #include "options.h" #include "abook.h" #include "gettext.h" #include "misc.h" #include "views.h" #include "xmalloc.h" #ifndef FALSE # define FALSE 0 #endif #ifndef TRUE # define TRUE 1 #endif #define UL (unsigned long) /* * option types */ enum opt_type { OT_BOOL, OT_STR, OT_INT }; struct option { char *option; enum opt_type type; unsigned int data; unsigned long init; }; static struct option abook_vars[] = { { "autosave", OT_BOOL, BOOL_AUTOSAVE, TRUE }, { "show_all_emails", OT_BOOL, BOOL_SHOW_ALL_EMAILS, TRUE }, { "index_format", OT_STR, STR_INDEX_FORMAT, UL " {name:22} {email:40} {phone:12|workphone|mobile}" }, { "mutt_command", OT_STR, STR_MUTT_COMMAND, UL "mutt" }, { "mutt_return_all_emails", OT_BOOL, BOOL_MUTT_RETURN_ALL_EMAILS, TRUE }, { "print_command", OT_STR, STR_PRINT_COMMAND, UL "lpr" }, { "www_command", OT_STR, STR_WWW_COMMAND, UL "lynx" }, { "address_style", OT_STR, STR_ADDRESS_STYLE, UL "eu" }, { "use_ascii_only", OT_BOOL, BOOL_USE_ASCII_ONLY, FALSE }, { "add_email_prevent_duplicates", OT_BOOL, BOOL_ADD_EMAIL_PREVENT_DUPLICATES, FALSE }, { "preserve_fields", OT_STR, STR_PRESERVE_FIELDS, UL "standard" }, { "sort_field", OT_STR, STR_SORT_FIELD, UL "nick" }, { "show_cursor", OT_BOOL, BOOL_SHOW_CURSOR, FALSE }, { "use_mouse", OT_BOOL, BOOL_USE_MOUSE, FALSE }, { "scroll_speed", OT_INT, INT_SCROLL_SPEED, UL 2 }, { "use_colors", OT_BOOL, BOOL_USE_COLORS, FALSE }, { "color_header_fg", OT_STR, STR_COLOR_HEADER_FG, UL "blue" }, { "color_header_fg", OT_STR, STR_COLOR_HEADER_FG, UL "blue" }, { "color_header_bg", OT_STR, STR_COLOR_HEADER_BG, UL "red" }, { "color_footer_fg", OT_STR, STR_COLOR_FOOTER_FG, UL "red" }, { "color_footer_bg", OT_STR, STR_COLOR_FOOTER_BG, UL "default" }, { "color_list_even_fg", OT_STR, STR_COLOR_LIST_EVEN_FG, UL "yellow" }, { "color_list_even_bg", OT_STR, STR_COLOR_LIST_EVEN_BG, UL "default" }, { "color_list_odd_fg", OT_STR, STR_COLOR_LIST_ODD_FG, UL "default" }, { "color_list_odd_bg", OT_STR, STR_COLOR_LIST_ODD_BG, UL "default" }, { "color_list_header_fg", OT_STR, STR_COLOR_LIST_HEADER_FG, UL "white" }, { "color_list_header_bg", OT_STR, STR_COLOR_LIST_HEADER_BG, UL "blue" }, { "color_list_highlight_fg", OT_STR, STR_COLOR_LIST_HIGHLIGHT_FG, UL "black" }, { "color_list_highlight_bg", OT_STR, STR_COLOR_LIST_HIGHLIGHT_BG, UL "green" }, { "color_tab_border_fg", OT_STR, STR_COLOR_TAB_BORDER_FG, UL "cyan" }, { "color_tab_border_bg", OT_STR, STR_COLOR_TAB_BORDER_BG, UL "default" }, { "color_tab_label_fg", OT_STR, STR_COLOR_TAB_LABEL_FG, UL "magenta" }, { "color_tab_label_bg", OT_STR, STR_COLOR_TAB_LABEL_BG, UL "default" }, { "color_field_name_fg", OT_STR, STR_COLOR_FIELD_NAME_FG, UL "yellow" }, { "color_field_name_bg", OT_STR, STR_COLOR_FIELD_NAME_BG, UL "default" }, { "color_field_value_fg", OT_STR, STR_COLOR_FIELD_VALUE_FG, UL "green" }, { "color_field_value_bg", OT_STR, STR_COLOR_FIELD_VALUE_BG, UL "default" }, { NULL } }; static unsigned char bool_opts[BOOL_MAX]; static int int_opts[INT_MAXIMUM]; static char *str_opts[STR_MAX]; static void set_int(enum int_opts opt, int value) { assert(opt >= 0 && opt < INT_MAXIMUM); int_opts[opt] = value; } static void set_bool(enum bool_opts opt, bool value) { assert(opt >= 0 && opt < BOOL_MAX); bool_opts[opt] = value; } static void set_str(enum str_opts opt, char *value) { assert(opt >= 0 && opt < STR_MAX); if(str_opts[opt]) free(str_opts[opt]); str_opts[opt] = xstrdup(value); } int opt_get_int(enum int_opts opt) { assert(opt >= 0 && opt < INT_MAXIMUM); return int_opts[opt]; } bool opt_get_bool(enum bool_opts opt) { assert(opt >= 0 && opt < BOOL_MAX); return bool_opts[opt]; } char * opt_get_str(enum str_opts opt) { assert(opt >= 0 && opt < STR_MAX); return str_opts[opt]; } static void restore_default(struct option *p) { switch(p -> type) { case OT_BOOL: set_bool(p -> data, (bool)p -> init); break; case OT_INT: set_int(p -> data, (int)p -> init); break; case OT_STR: if(p -> init) set_str(p -> data, (char *) p -> init); break; default: assert(0); } } void init_opts() { int i; for(i = 0; abook_vars[i].option; i++) restore_default(&abook_vars[i]); } void free_opts() { int i; /* * only strings need to be freed */ for(i = 0; i < STR_MAX; i++) { free(str_opts[i]); str_opts[i] = NULL; } } /* * file parsing */ typedef struct { char *data, *ptr; } buffer; static void opt_line_remove_comments(char *p) { bool in_quote = FALSE; bool escape = FALSE; assert(p != NULL); for(; *p; p++) { switch(*p) { case '\"': if(!escape) in_quote = !in_quote; break; case '\\': escape = TRUE; break; case '#': if(!in_quote) { *p = 0; return; } default: escape = FALSE; } } } /* After calling, * - b->data points to the found token, or NULL is end of parsing * - b->ptr points to the begining of next token * * If the TOKEN_ALLOC option is used, the original string is not mangled * and memory is allocated for the token. */ static char * get_token(buffer *b, int options) { char quote = 0, c; char *end = NULL; assert(b); SKIPWS(b->ptr); if(*b->ptr && strchr("\"'", *b->ptr)) quote = *(b->ptr++); b->data = b->ptr; while(1) { if(!(c = *b->ptr)) { end = b->ptr; break; } if(!quote && ( ISSPACE(c) || ((options & TOKEN_EQUAL) && (c == '=')) || ((options & TOKEN_COMMA) && (c == ','))) ) { end = b->ptr; break; } else if(c == quote) { quote = 0; end = b->ptr++; break; } b->ptr++; } if(quote) return _("quote mismatch"); if(options & (TOKEN_EQUAL | TOKEN_COMMA)) SKIPWS(b->ptr); /* whitespaces can precede the sign */ if((options & TOKEN_EQUAL) && (*b->ptr != '=')) return _("no assignment character found"); if((options & TOKEN_COMMA) && *b->ptr && (*b->ptr != ',')) return _("error in comma separated list"); if(b->ptr == b->data) { b->data = NULL; return NULL; /* no error, just end of parsing */ } if(options & TOKEN_ALLOC) /* freeing is the caller's responsibility */ b->data = xstrndup(b->data, end - b->data); else *end = 0; b->ptr++; /* advance to next token */ SKIPWS(b->ptr); return NULL; } static const char * opt_set_set_option(char *p, struct option *opt) { int len; assert(p); strtrim(p); len = strlen(p); if(*p == '\"' && p[len - 1] == '\"') { if(len < 3) return _("invalid value"); p[len - 1] = 0; p++; } switch(opt -> type) { case OT_STR: set_str(opt -> data, p); break; case OT_INT: set_int(opt -> data, safe_atoi(p)); break; case OT_BOOL: if(!strcasecmp(p, "true") || !strcasecmp(p, "on")) set_bool(opt -> data, TRUE); else if(!strcasecmp(p, "false") || !strcasecmp(p, "off")) set_bool(opt -> data, FALSE); else return _("invalid value"); break; default: assert(0); } return NULL; } static const char * opt_set_option(char *var, char *p) { int i; assert(var); assert(p); for(i = 0; abook_vars[i].option; i++) if(!strcmp(abook_vars[i].option, var)) return opt_set_set_option(p, &abook_vars[i]); return _("unknown option"); } static int check_options() { char *str; int err = 0; str = opt_get_str(STR_PRESERVE_FIELDS); if(strcasecmp(str, "all") && strcasecmp(str, "none") && strcasecmp(str, "standard")) { fprintf(stderr, _("valid values for the 'preserve_fields' " "option are 'all', 'standard' " "(default), and 'none'\n")); restore_default(&abook_vars[STR_PRESERVE_FIELDS]); err++; } str = opt_get_str(STR_ADDRESS_STYLE); if(strcasecmp(str, "eu") && strcasecmp(str, "uk") && strcasecmp(str, "us")) { fprintf(stderr, _("valid values for the 'address_style' " "option are 'eu' (default), 'uk', " "and 'us'\n")); restore_default(&abook_vars[STR_ADDRESS_STYLE]); err++; } return err; } /* * syntax: set ll, export elected, or ancel?"), S_("keybindings:all/selected/cancel|asc"), 3)) { case 1: break; case 2: enum_mode = ENUM_SELECTED; break; case 0: case 3: refresh_screen(); return 1; } clear_statusline(); } filename = ask_filename(_("Filename: ")); if(!filename) { refresh_screen(); return 2; } if( e_write_file(filename, e_filters[filter].func, enum_mode)) statusline_msg(_("Error occured while exporting")); refresh_screen(); free(filename); return 0; } struct abook_output_item_filter select_output_item_filter(char filtname[FILTNAME_LEN]) { int i; for(i=0;; i++) { if(!strncasecmp(u_filters[i].filtname, filtname, FILTNAME_LEN)) break; if(!*u_filters[i].filtname) { i = -1; break; } } return u_filters[i]; } void e_write_item(FILE *out, int item, void (*func) (FILE *in, int item)) { (*func) (out, item); } static int e_write_file(char *filename, int (*func) (FILE *in, struct db_enumerator e), int mode) { FILE *out; int ret = 0; struct db_enumerator enumerator = init_db_enumerator(mode); if((out = fopen(filename, "a")) == NULL) return 1; if(ftell(out)) return 1; ret = (*func) (out, enumerator); fclose(out); return ret; } int fexport(char filtname[FILTNAME_LEN], FILE *handle, int enum_mode) { int i; struct db_enumerator e = init_db_enumerator(enum_mode); for(i=0;; i++) { if(!strncasecmp(e_filters[i].filtname, filtname, FILTNAME_LEN)) break; if(!*e_filters[i].filtname) { i = -1; break; } } return (e_filters[i].func) (handle, e); } int export_file(char filtname[FILTNAME_LEN], char *filename) { const int mode = ENUM_ALL; int i; int ret = 0; struct db_enumerator e = init_db_enumerator(mode); for(i=0;; i++) { if(!strncasecmp(e_filters[i].filtname, filtname, FILTNAME_LEN)) break; if(!*e_filters[i].filtname) { i = -1; break; } } if(i < 0) return -1; if(!strcmp(filename, "-")) ret = (e_filters[i].func) (stdout, e); else ret = e_write_file(filename, e_filters[i].func, mode); return ret; } /* * end of common functions */ /* * ldif import */ #include "ldif.h" /* During LDIF import we need more fields than the ITEM_FIELDS of a *list_item. Eg: "objectclass" to test valid records, ... Here we extends the existing field_types enum to define new fields indexes usable during processing. Newly created LDIF attr names could be associated to them using ldif_conv_table[]. */ typedef enum { LDIF_OBJECTCLASS = ITEM_FIELDS + 1 } ldif_field_types; #define LDIF_ITEM_FIELDS LDIF_OBJECTCLASS typedef char *ldif_item[LDIF_ITEM_FIELDS]; /* LDIF field's names *must* respect the ordering defined by the field_types enum from database.h This is only used to define (for export only) abook standard field to LDIF attr name mappings */ static ldif_item ldif_field_names = { "cn", // NAME "mail", // EMAIL "streetaddress", // ADDRESS "streetaddress2", // ADDRESS2 "locality", // CITY "st", // STATE "postalcode", // ZIP "countryname", // COUNTRY "homephone", // PHONE "telephonenumber", // WORKPHONE "facsimiletelephonenumber", // FAX "cellphone", // MOBILEPHONE "xmozillanickname", // NICK "homeurl", // URL "description", // NOTES "anniversary", // ANNIVERSARY "ou", // GROUPS }; /* Used to map LDIF attr names from input to the abook restricted set of standard fields. */ typedef struct { char *key; int index; } ldif_available_items; static ldif_available_items ldif_conv_table[] = { /* initial field names respect the field_types enum from database.h but this is only for readability. This ldif_item struct allow use to define multiple LDIF field names ("attribute names") for one abook field */ {"cn", NAME}, // 0 {"mail", EMAIL}, {"streetaddress", ADDRESS}, {"streetaddress2", ADDRESS2}, {"locality", CITY}, {"st", STATE}, {"postalcode", ZIP}, {"countryname", COUNTRY}, {"homephone", PHONE}, {"telephonenumber", WORKPHONE}, // workphone, according to Mozilla {"facsimiletelephonenumber", FAX}, {"cellphone", MOBILEPHONE}, {"mozillanickname", NICK}, {"homeurl", URL}, {"description", NOTES}, {"anniversary", ANNIVERSARY}, {"ou", GROUPS}, // 16 // here comes a couple of aliases {"mozillasecondemail", EMAIL}, {"homecity", CITY}, {"zip", ZIP}, {"tel", PHONE}, {"xmozillaanyphone", WORKPHONE}, // ever used ? {"workphone", WORKPHONE}, {"fax", FAX}, {"telexnumber", FAX}, {"mobilephone", MOBILEPHONE}, {"mobile", MOBILEPHONE}, {"xmozillanickname", NICK}, {"labeledURI", URL}, {"notes", NOTES}, {"birthday", ANNIVERSARY}, {"category", GROUPS}, /* TODO: "sn": append to lastname ? "surname": append to lastname ? "givenname": prepend to firstname ? */ /* here starts dummy fields: As long as additional indexes are created (using the above ldif_field_types), any other LDIF attr name can be added and used during ldif entry processing. But obviously fields > ITEM_FIELDS (database.h) won't be copied into the final *list_item. */ /* - to avoid mistake, don't use the special ITEM_FIELDS value. - see also: http://mxr.mozilla.org/comm-central/source/mailnews/addrbook/src/nsAbLDIFService.cpp */ // used to check valid LDIF records: {"objectclass", LDIF_OBJECTCLASS} }; const int LDIF_IMPORTABLE_ITEM_FIELDS = (int)sizeof(ldif_conv_table)/sizeof(*ldif_conv_table); /* Handles multi-line strings. If a string starts with a space, it's the continuation of the previous line. Thus we need to always read ahead. But for this to work with stdin, we need to stores the next line for later use in case it's not a continuation of the first line. */ static char * ldif_read_line(FILE *in, char **next_line) { char *buf = NULL; char *ptr, *tmp; char *line; // buf filled with the first line if(!*next_line) buf = getaline(in); else { buf = xstrdup(*next_line); xfree(*next_line); } while(!feof(in)) { // if no line already read-ahead. line = getaline(in); if(!line) break; // this is not a continuation of what is already in buf // store it for the next round if(*line != ' ') { *next_line = line; break; } // starts with ' ': this is the continuation of buf ptr = line; while( *ptr == ' ') ptr++; tmp = buf; buf = strconcat(buf, ptr, NULL); free(tmp); free(line); } if(buf && *buf == '#' ) { free(buf); return NULL; } return buf; } static void ldif_add_item(ldif_item li) { list_item item; int i; /* if there's no value for "objectclass" it's probably a buggy record */ if(!li[LDIF_OBJECTCLASS]) goto bail_out; /* just copy from our extended ldif_item to a regular list_item, TODO: API could be changed so db_fput_byid() is usable */ item = item_create(); for(i=0; i < ITEM_FIELDS; i++) { if(li[i] && *li[i]) item[i] = xstrdup(li[i]); } add_item2database(item); item_free(&item); bail_out: for(i=0; i < LDIF_ITEM_FIELDS; i++) xfree(li[i]); } static void ldif_convert(ldif_item item, char *type, char *value) { /* this is the first (mandatory) attribute to expected from a new valid LDIF record. The previous record must be added to the database before we can go further with the new one */ if(!strcmp(type, "dn")) { ldif_add_item(item); return; } int i, index; for( i=0; i < LDIF_IMPORTABLE_ITEM_FIELDS; i++ ) { if( *value && // there's a value for the attr provided ldif_conv_table[i].key && // there exists an ldif attr name... !strcasecmp(ldif_conv_table[i].key, type)) { // ...matching that provided at input assert((i >= 0) && (i < LDIF_ITEM_FIELDS)); // which abook field this attribute's name maps to ? index = ldif_conv_table[i].index; assert((index >= 0) && (index < LDIF_ITEM_FIELDS)); /* TODO: here must be handled multi-valued cases (first or latest win, append or prepend values, ...) Currently: emails are appended, for other fields the first attribute found wins. Eg: the value of "mobile" will be taken into account if such a line comes before "cellphone". */ /* Remember: LDIF_ITEM_FIELDS > ITEM_FIELDS, lower (common) indexes of *ldif_item map well to *list_item. We can use item_fput()... */ if(index < ITEM_FIELDS) { // multiple email support, but two only will stay // in the final *list_item if(index == EMAIL && item_fget(item, EMAIL)) { item_fput(item, EMAIL, strconcat(item_fget(item, EMAIL), ",", value, 0)); } else { /* Don't override already initialized fields: This is the rule of the "first win" */ if(! item_fget(item, index)) item_fput(item, index, xstrdup(value)); } } /* ... but if the ldif field's name index is higher than what standards abook fields struct can hold, these extra indexes must be managed manually. This is the case of LDIF_OBJECTCLASS ("objectclass" attr) */ else { item[index] = xstrdup(value); } // matching attr found and field filled: // no further attr search is needed for `type` break; } } } static int ldif_parse_file(FILE *handle) { char *line = NULL; char *next_line = NULL; char *type, *value; int vlen; /* This is our extended fields holder to put the values from successfully parsed LDIF attributes. ldif_item item is temporary. When the end of an entry is reached, values are copied into a regular *list_item struct, see ldif_add_item() */ ldif_item item; memset(item, 0, sizeof(item)); do { line = ldif_read_line(handle, &next_line); // EOF or empty lines: continue; if(!line || *line == '\0') continue; if(-1 == (str_parse_line(line, &type, &value, &vlen))) { xfree(line); continue; /* just skip the errors */ } ldif_convert(item, type, value); xfree(line); } while ( !feof(handle) ); // force registration (= ldif_add_item()) of the last LDIF entry ldif_convert(item, "dn", ""); return 0; } /* * end of ldif import */ /* * mutt alias import filter */ #include "getname.h" static int mutt_read_line(FILE *in, char **groups, char **alias, char **rest) { char *line, *ptr; char *start, *end; abook_list *glist = NULL; if( !(line = ptr = getaline(in)) ) return 1; /* error / EOF */ SKIPWS(ptr); if(strncmp("alias", ptr, 5)) { free(line); return 1; } ptr += 5; SKIPWS(ptr); /* If the group option is used, save the groups */ *groups = NULL; start = ptr; int n_groups; for(n_groups = 0; 0 == strncmp("-group", ptr, 6); n_groups++) { ptr += 6; SKIPWS(ptr); start = ptr; SKIPNONWS(ptr); end = ptr; abook_list_append(&glist,xstrndup(start, end - start)); SKIPWS(ptr); } if(n_groups && groups) *groups = abook_list_to_csv(glist); abook_list_free(&glist); /* alias */ start = ptr; SKIPNONWS(ptr); end = ptr; SKIPWS(ptr); if(alias) *alias = xstrndup(start, end - start); /* rest (email) */ *rest = xstrdup(ptr); xfree(line); return 0; } static void mutt_fix_quoting(char *p) { char *escape = 0; for(; *p; p++) { switch(*p) { case '\"': if(escape) *escape = ' '; break; case '\\': escape = p; break; default: escape = 0; } } } static void mutt_parse_email(list_item item) { char *line = item_fget(item, NAME); char *tmp; char *name, *email; #if 0 char *start = line; int i = 0; #endif mutt_fix_quoting(line); tmp = strconcat("From: ", line, NULL); getname(tmp, &name, &email); free(tmp); if(name) item_fput(item, NAME, name); else return; if(email) item_fput(item, EMAIL, email); else return; /* * this is completely broken */ #if 0 while( (start = strchr(start, ',')) && i++ < MAX_EMAILS - 1) { tmp = strconcat("From: ", ++start, NULL); getname(tmp, &name, &email); free(tmp); free(name); if(email) { if(*email) { tmp = strconcat(item[EMAIL], ",", email, NULL); free(item[EMAIL]); item[EMAIL] = tmp; } else { xfree(email); } } } #endif } static int mutt_parse_file(FILE *in) { list_item item = item_create(); for(;;) { memset(item, 0, fields_count * sizeof(char *)); if(!mutt_read_line(in, (field_id(GROUPS) != -1) ? &item[field_id(GROUPS)] : NULL, (field_id(NICK) != -1) ? &item[field_id(NICK)] : NULL, &item[field_id(NAME)]) ) mutt_parse_email(item); if(feof(in)) { item_empty(item); break; } add_item2database(item); } item_free(&item); return 0; } /* * end of mutt alias import filter */ /* * ldif export filter */ static void ldif_fput_type_and_value(FILE *out,char *type, char *value ) { char *tmp; tmp = ldif_type_and_value(type, value, strlen(value)); fputs(tmp, out); free(tmp); } static int ldif_export_database(FILE *out, struct db_enumerator e) { char email[MAX_EMAILSTR_LEN]; abook_list *emails, *em; fprintf(out, "version: 1\n"); db_enumerate_items(e) { char *tmp; int j; get_first_email(email, e.item); if(*email) tmp = strdup_printf("cn=%s,mail=%s",db_name_get(e.item),email); /* TODO: this may not be enough for a trully "Distinguished" name needed by LDAP. Appending a random uuid could do the trick */ else tmp = strdup_printf("cn=%s",db_name_get(e.item)); ldif_fput_type_and_value(out, "dn", tmp); free(tmp); for(j = 0; j < ITEM_FIELDS; j++) { if(j == EMAIL) { if(*email) { tmp = db_email_get(e.item); emails = csv_to_abook_list(tmp); free(tmp); for(em = emails; em; em = em->next) ldif_fput_type_and_value(out, ldif_field_names[EMAIL], em->data); } } else if(db_fget(e.item,j)) { ldif_fput_type_and_value(out, ldif_field_names[j], db_fget(e.item, j)); } } fprintf(out, "objectclass: top\n" "objectclass: person\n\n"); } return 0; } /* * end of ldif export filter */ /* * html export filter */ static void html_export_write_head(FILE *out); static void html_export_write_tail(FILE *out); extern struct index_elem *index_elements; static void html_print_emails(FILE *out, struct list_field *f) { abook_list *l = csv_to_abook_list(f->data); for(; l; l = l->next) { fprintf(out, "%s", l->data, l->data); if(l->next) fprintf(out, ", "); } abook_list_free(&l); } static int html_export_database(FILE *out, struct db_enumerator e) { struct list_field f; struct index_elem *cur; if(list_is_empty()) return 2; init_index(); html_export_write_head(out); db_enumerate_items(e) { fprintf(out, " \n"); for(cur = index_elements; cur; cur = cur->next) { if(cur->type != INDEX_FIELD) continue; get_list_field(e.item, cur, &f); fprintf(out, " "); if(f.type == FIELD_EMAILS) { html_print_emails(out, &f); } else { if (strcmp(safe_str(f.data), "") == 0) fprintf(out, " "); else fprintf(out, "%s", safe_str(f.data)); } fprintf(out, "\n"); } fprintf(out, " \n"); } html_export_write_tail(out); return 0; } static void html_export_write_head(FILE *out) { char *realname = get_real_name(), *str; struct index_elem *cur; fprintf(out, "\n"); fprintf(out, "\n"); fprintf(out, "\n"); fprintf(out, " \n"); fprintf(out, " "); fprintf(out, _("%s's addressbook"), realname ); fprintf(out, "\n"); fprintf(out, " \n"); fprintf(out, "\n"); fprintf(out, "\n"); fprintf(out, "

"); fprintf(out, _("%s's addressbook"), realname); fprintf(out, "

\n"); fprintf(out, "\n"); fprintf(out, "\n"); fprintf(out, " \n"); for(cur = index_elements; cur; cur = cur->next) { if(cur->type != INDEX_FIELD) continue; get_field_info(cur->d.field.id, NULL, &str, NULL); fprintf(out, " \n"); } fprintf(out, " \n"); fprintf(out, "\n"); fprintf(out, "\n"); free(realname); } static void html_export_write_tail(FILE *out) { fprintf(out, "
"); if (strcmp(str, "") == 0) fprintf(out, " "); else fprintf(out, "%s", str); fprintf(out, "
\n"); fprintf(out, "\n"); fprintf(out, ""); } /* * end of html export filter */ /* * pine addressbook import filter */ #define PINE_BUF_SIZE 2048 static void pine_fixbuf(char *buf) { int i,j; for(i = 0,j = 0; j < (int)strlen(buf); i++, j++) buf[i] = buf[j] == '\n' ? buf[++j] : buf[j]; } static void pine_convert_emails(char *s) { int i; char *tmp; if(s == NULL || *s != '(') return; for(i = 0; s[i]; i++) s[i] = s[i + 1]; if( ( tmp = strchr(s,')')) ) *tmp = '\0'; for(i = 1; ( tmp = strchr(s, ',') ) != NULL ; i++, s = tmp + 1) if(i > MAX_LIST_ITEMS - 1) { *tmp = '\0'; break; } } static void pine_parse_buf(char *buf) { list_item item; char *start = buf; char *end; char tmp[PINE_BUF_SIZE]; int i, len, last; int pine_conv_table[]= {NICK, NAME, EMAIL, -1, NOTES}; item = item_create(); for(i=0, last=0; !last ; i++) { if( !(end = strchr(start, '\t')) ) last=1; len = last ? strlen(start) : (int) (end-start); len = min(len, PINE_BUF_SIZE - 1); if(i < (int)(sizeof(pine_conv_table) / sizeof(*pine_conv_table)) && pine_conv_table[i] >= 0) { strncpy(tmp, start, len); tmp[len] = 0; if(*tmp) item_fput(item, pine_conv_table[i], xstrdup(tmp)); } start = end + 1; } pine_convert_emails(item_fget(item, EMAIL)); add_item2database(item); item_free(&item); } #define LINESIZE 1024 static int pine_parse_file(FILE *in) { char line[LINESIZE]; char *buf = NULL; char *ptr; int i; fgets(line, LINESIZE, in); while(!feof(in)) { for(i = 2;;i++) { buf = xrealloc(buf, i*LINESIZE); if(i == 2) strcpy(buf, line); fgets(line, LINESIZE, in); ptr=(char *)&line; if(*ptr != ' ' || feof(in)) break; else while(*ptr == ' ') ptr++; strcat(buf, ptr); } if(*buf == '#') { xfree(buf); continue; } pine_fixbuf(buf); pine_parse_buf(buf); xfree(buf); } return 0; } /* * end of pine addressbook import filter */ /* * pine addressbook export filter * * filter doesn't wrap the lines as it should but Pine seems to handle * created files without problems - JH */ static int pine_export_database(FILE *out, struct db_enumerator e) { char *emails; db_enumerate_items(e) { emails = db_email_get(e.item); fprintf(out, strchr(emails, ',') /* multiple addresses? */ ? "%s\t%s\t(%s)\t\t%s\n" : "%s\t%s\t%s\t\t%s\n", safe_str(db_fget(e.item, NICK)), safe_str(db_name_get(e.item)), emails, safe_str(db_fget(e.item, NOTES)) ); free(emails); } return 0; } /* * end of pine addressbook export filter */ /* * csv import filter */ /* This is used by both allcsv_export_database() and csv_export_common() to distinguish between standard and defined fields. To avoid confusions this should stay > ITEM_FIELDS */ #define CUSTOM_FIELD_START_INDEX (ITEM_FIELDS + 10) /* FIXME * these files should be parsed according to a certain * lay out, or the default if layout is not given, at * the moment only default is done... */ #define CSV_COMMENT_CHAR '#' #define CSV_DUPLICATE_SEPARATOR " " #define CSV_TABLE_SIZE(t) (sizeof (t) / sizeof *(t)) static int csv_conv_table[] = { NAME, EMAIL, PHONE, NOTES, NICK }; static int allcsv_conv_table[] = { NAME, EMAIL, ADDRESS, ADDRESS2, CITY, STATE, ZIP, COUNTRY, PHONE, WORKPHONE, FAX, MOBILEPHONE, NICK, URL, NOTES, ANNIVERSARY }; static int palmcsv_conv_table[] = { NAME, /* Last name */ NAME, /* First name */ NOTES, /* Title */ NICK, /* Company */ WORKPHONE, PHONE, FAX, MOBILEPHONE, EMAIL, ADDRESS, CITY, STATE, ZIP, COUNTRY, ANNIVERSARY, }; static void csv_convert_emails(char *s) { int i; char *tmp; if(s == NULL) return; for(i = 1; ( tmp = strchr(s, ',') ) != NULL ; i++, s = tmp + 1) if(i > MAX_LIST_ITEMS - 1) { *tmp = 0; break; } } static char * csv_remove_quotes(char *s) { char *copy, *trimmed; int len; copy = trimmed = xstrdup(s); strtrim(trimmed); len = strlen(trimmed); if(trimmed[len - 1] == '\"' && *trimmed == '\"') { if(len < 3) { xfree(copy); return NULL; } trimmed[len - 1] = 0; trimmed++; trimmed = xstrdup(trimmed); free(copy); return trimmed; } xfree(copy); return xstrdup(s); } static int csv_field_to_item(int *table_base, size_t table_size, int field) { if(field < table_size) return field_id(table_base[field]); return -1; } static void csv_store_item(list_item item, int i, char *s) { char *newstr = NULL; if(!s || !*s) return; if( !(newstr = csv_remove_quotes(s)) ) return; if(i >= 0) { if (item[i] != NULL) { char *oldstr = item[i]; item[i] = strconcat(newstr, CSV_DUPLICATE_SEPARATOR, oldstr, NULL); xfree(newstr); xfree(oldstr); } else { item[i] = newstr; } } else { xfree(newstr); } } static int csv_is_valid_quote_end(char *p) { if(*p != '\"') return FALSE; for(p++; *p; p++) { if(*p == ',') return TRUE; else if(!ISSPACE(*p)) return FALSE; } return TRUE; } static int csv_is_valid_quote_start(char *p) { for(; *p; p++) { if(*p == '\"') return TRUE; else if(!ISSPACE(*p)) return FALSE; } return FALSE; } static void csv_parse_line(char *line, int *table_base, size_t table_size) { char *p, *start; int field; bool in_quote = FALSE; list_item item; item = item_create(); for(p = start = line, field = 0; *p; p++) { if(in_quote) { if(csv_is_valid_quote_end(p)) in_quote = FALSE; } else { if ( (((p - start) / sizeof (char)) < 2 ) && csv_is_valid_quote_start(p) ) in_quote = TRUE; } if(*p == ',' && !in_quote) { *p = 0; csv_store_item(item, csv_field_to_item(table_base,table_size,field), start); field++; start = p + 1; } } /* * store last field */ csv_store_item(item, csv_field_to_item(table_base, table_size, field), start); csv_convert_emails(item_fget(item, EMAIL)); add_item2database(item); item_free(&item); } static int csv_parse_file_common(FILE *in, int *conv_table, size_t table_size) { char *line = NULL; while(!feof(in)) { line = getaline(in); if(line && *line && *line != CSV_COMMENT_CHAR) csv_parse_line(line, conv_table, table_size); xfree(line); } return 0; } static int csv_parse_file(FILE *in) { return csv_parse_file_common(in, csv_conv_table, CSV_TABLE_SIZE(csv_conv_table)); } static int allcsv_parse_file(FILE *in) { return csv_parse_file_common(in, allcsv_conv_table, CSV_TABLE_SIZE(allcsv_conv_table)); } static int palmcsv_parse_file(FILE *in) { return csv_parse_file_common(in, palmcsv_conv_table, CSV_TABLE_SIZE(palmcsv_conv_table)); } /* * end of csv import filter */ /* * vCard import filter */ static char *vcard_fields[] = { "FN", /* FORMATTED NAME */ "EMAIL", /* EMAIL */ "ADR", /* ADDRESS */ "ADR", /* ADDRESS2 */ "ADR", /* CITY */ "ADR", /* STATE */ "ADR", /* ZIP */ "ADR", /* COUNTRY */ "TEL", /* PHONE */ "TEL", /* WORKPHONE */ "TEL", /* FAX */ "TEL", /* MOBILEPHONE */ "NICKNAME", /* NICK */ "URL", /* URL */ "NOTE", /* NOTES */ "BDAY", /* ANNIVERSARY */ "N", /* NAME: special case/mapping in vcard_parse_line() */ NULL /* ITEM_FIELDS */ }; enum { VCARD_KEY = 0, VCARD_KEY_ATTRIBUTE, VCARD_VALUE, }; static char * vcard_get_line_element(char *line, int element) { int i; char *line_copy = 0; char *result = 0; char *key = 0; char *key_attr = 0; char *value = 0; line_copy = xstrdup(line); /* change newline characters, if present, to end of string */ for(i=0; line_copy[i]; i++) { if(line_copy[i] == '\r' || line_copy[i] == '\n') { line_copy[i] = '\0'; break; } } /* separate key from value */ for(i=0; line_copy[i]; i++) { if(line_copy[i] == ':') { line_copy[i] = '\0'; key = line_copy; value = &line_copy[i+1]; break; } } /* separate key from key attributes */ /* works for vCard 2 as well (automagically) */ if (key) { for(i=0; key[i]; i++) { if(key[i] == ';') { key[i] = '\0'; key_attr = &key[i+1]; break; } } } switch(element) { case VCARD_KEY: if(key) result = xstrdup(key); break; case VCARD_KEY_ATTRIBUTE: if(key_attr) result = xstrdup(key_attr); break; case VCARD_VALUE: if(value) result = xstrdup(value); break; } xfree(line_copy); return result; } static void vcard_parse_email(list_item item, char *line) { char *email; email = vcard_get_line_element(line, VCARD_VALUE); if(item[1]) { item[1] = strconcat(item[1], ",", email, 0); xfree(email); } else { item[1] = email; } } /* * mappings between vCard ADR field and abook's ADDRESS * see rfc2426 section 3.2.1 */ static void vcard_parse_address(list_item item, char *line) { char *value; value = vcard_get_line_element(line, VCARD_VALUE); if(!value) return; // vCard(post office box) - not used strsep(&value, ";"); if(!value) return; // vCard(the extended address) item_fput(item, ADDRESS2, xstrdup(strsep(&value, ";"))); if(!value) return; // vCard(the street address) item_fput(item, ADDRESS, xstrdup(strsep(&value, ";"))); if(!value) return; // vCard(the locality) item_fput(item, CITY, xstrdup(strsep(&value, ";"))); if(!value) return; // vCard(the region) item_fput(item, STATE, xstrdup(strsep(&value, ";"))); if(!value) return; // vCard(the postal code) item_fput(item, ZIP, xstrdup(strsep(&value, ";"))); if(!value) return; // vCard(the country name) item_fput(item, COUNTRY, xstrdup(strsep(&value, ";"))); // support of optional trailing ";" to the ADR field if(value && *value) xfree(value); } static void vcard_parse_name(list_item item, char *line) { // store the "N" field into "NAME" *if* no "FN:" // value has already been stored here if(item[0]) return; int i = -1; item[0] = vcard_get_line_element(line, VCARD_VALUE); // "N:" can be multivalued => replace ';' separators by ' ' while(item[0][++i]) if(item[0][i] == ';') item[0][i] = ' '; // http://www.daniweb.com/software-development/c/code/216919 char *original = item[0], *p = original; int trimmed = 0; do { if (*original != ' ' || trimmed) { trimmed = 1; *p++ = *original; } } while(*original++); } static void vcard_parse_phone(list_item item, char *line) { char *type = vcard_get_line_element(line, VCARD_KEY_ATTRIBUTE); char *value = vcard_get_line_element(line, VCARD_VALUE); /* set the standard number */ if (!type) item_fput(item, PHONE, value); /* * see rfc2426 section 3.3.1 * Note: we probably support both vCard 2 and 3 */ else { if (strcasestr(type, "home") != NULL) item_fput(item, PHONE, xstrdup(value)); else if (strcasestr(type, "work") != NULL) item_fput(item, WORKPHONE, xstrdup(value)); else if (strcasestr(type, "fax") != NULL) item_fput(item, FAX, xstrdup(value)); else if (strcasestr(type, "cell") != NULL) item_fput(item, MOBILEPHONE, xstrdup(value)); xfree(type); xfree(value); } } static void vcard_parse_line(list_item item, char *line) { int i; char *key; for(i=0; vcard_fields[i]; i++) { key = vcard_fields[i]; if(0 == strncmp(key, line, strlen(key))) { if(0 == strcmp(key, "EMAIL")) vcard_parse_email(item, line); else if(i == 2) vcard_parse_address(item, line); else if(0 == strcmp(key, "TEL")) vcard_parse_phone(item, line); else if(0 == strcmp(key, "N")) vcard_parse_name(item, line); else item[i] = vcard_get_line_element(line, VCARD_VALUE); return; } } } static void vcard_parse_item(FILE *in) { char *line = NULL; list_item item = item_create(); while(!feof(in)) { line = getaline(in); if(line && !strncmp("END:VCARD", line, 9)) { xfree(line); break; } else if(line) { vcard_parse_line(item, line); xfree(line); } } add_item2database(item); item_free(&item); } static int vcard_parse_file(FILE *in) { char *line = NULL; while(!feof(in)) { line = getaline(in); if(line && !strncmp("BEGIN:VCARD", line, 11)) { xfree(line); vcard_parse_item(in); } else if(line) { xfree(line); } } return 0; } /* * end of vCard import filter */ /* * csv addressbook export filters */ #define CSV_LAST (-1) #define CSV_UNDEFINED (-2) #define CSV_SPECIAL(X) (-3 - (X)) #define CSV_IS_SPECIAL(X) ((X) <= -3) static int csv_export_common(FILE *out, struct db_enumerator e, int fields[], void (*special_func)(FILE *, int, int)) { int i; db_enumerate_items(e) { for(i = 0; fields[i] != CSV_LAST; i++) { if(fields[i] == CSV_UNDEFINED) fprintf(out, "\"\""); else if(CSV_IS_SPECIAL(fields[i])) { if(special_func) (*special_func)(out, e.item, fields[i]); } else if(fields[i] >= CUSTOM_FIELD_START_INDEX) { fprintf(out, "\"%s\"", safe_str(db_fget_byid(e.item, fields[i] - CUSTOM_FIELD_START_INDEX))); } else /*fprintf(out,( strchr(safe_str(database[e.item][field_idx(fields[i])]), ',') || strchr(safe_str(database[e.item][field_idx(fields[i])]), '\"')) ? "\"%s\"" : "%s", safe_str(database[e.item][field_idx(fields[i])]) );*/ fprintf(out, "\"%s\"", safe_str(db_fget(e.item,fields[i]))); if(fields[i + 1] != CSV_LAST) fputc(',', out); } fputc('\n', out); } return 0; } static int csv_export_database(FILE *out, struct db_enumerator e) { int csv_export_fields[] = { NAME, EMAIL, PHONE, NOTES, NICK, CSV_LAST }; csv_export_common(out, e, csv_export_fields, NULL); return 0; } static int allcsv_export_database(FILE *out, struct db_enumerator e) { /* * TODO: Should get these atomatically from abook_fileds * - JH */ int allcsv_export_fields[ITEM_FIELDS + 6] = { // only the 5 custom fields are allowed so far NAME, EMAIL, ADDRESS, ADDRESS2, CITY, STATE, ZIP, COUNTRY, PHONE, WORKPHONE, FAX, MOBILEPHONE, // spelt "mobile" in standard_fields NICK, URL, NOTES, ANNIVERSARY, GROUPS, CSV_LAST }; fprintf(out, "#"); int i = 0; while(allcsv_export_fields[i+1] != CSV_LAST) { fprintf(out, "\"%s\",", standard_fields[i++].key); } fprintf(out, "\"%s\"", standard_fields[i].key); /* Custom fields handling: This loop appends custom fields' id at the end of allcsv_export_fields and shift the CSV_LAST sentinel value each time one is found. CUSTOM_FIELD_START_INDEX is added to these index values so csv_export_common() can later recognize them and call db_fget_byid() instead of the traditional db_fget() It only search for defined the [legacy?] "custom" fields. */ // pointer to the end of the field list int append_field = ITEM_FIELDS; // custom field's trailing number (between 1 and 5) int j; // full custom field name, eg "custom4" char custom_field_key[8]; // index used by custom_field_key int field_no; // name of the defined field as chosen by the user char *custom_field_name; for (j = 1; j <= 5; j++) { snprintf(custom_field_key, 8, "custom%d", j++); if(find_declared_field(custom_field_key)) { find_field_number(custom_field_key, &field_no); get_field_info(field_no, NULL, &custom_field_name, NULL); // append the field to the list allcsv_export_fields[append_field] = field_no + CUSTOM_FIELD_START_INDEX; allcsv_export_fields[++append_field] = CSV_LAST; // print column name fprintf(out, ",\"%s\"", custom_field_name); } } free(custom_field_name); fprintf(out, "\n"); csv_export_common(out, e, allcsv_export_fields, NULL); return 0; } /* * palm csv */ #define PALM_CSV_NAME CSV_SPECIAL(0) #define PALM_CSV_END CSV_SPECIAL(1) #define PALM_CSV_CAT CSV_SPECIAL(2) static void palm_split_and_write_name(FILE *out, char *name) { char *p; assert(name); if ( (p = strchr(name, ' ')) ) { /* * last name first */ fprintf(out, "\"%s\",\"" , p + 1); fwrite((void *)name, p - name, sizeof(char), out); fputc('\"', out); } else { fprintf(out, "\"%s\"", safe_str(name)); } } static void palm_csv_handle_specials(FILE *out, int item, int field) { switch(field) { case PALM_CSV_NAME: palm_split_and_write_name(out, db_name_get(item)); break; case PALM_CSV_CAT: fprintf(out, "\"abook\""); break; case PALM_CSV_END: fprintf(out, "\"0\""); break; default: assert(0); } } static int palm_export_database(FILE *out, struct db_enumerator e) { int palm_export_fields[] = { PALM_CSV_NAME, /* LASTNAME, FIRSTNAME */ CSV_UNDEFINED, /* TITLE */ CSV_UNDEFINED, /* COMPANY */ WORKPHONE, /* WORK PHONE */ PHONE, /* HOME PHONE */ FAX, /* FAX */ MOBILEPHONE, /* OTHER */ EMAIL, /* EMAIL */ ADDRESS, /* ADDRESS */ CITY, /* CITY */ STATE, /* STATE */ ZIP, /* ZIP */ COUNTRY, /* COUNTRY */ NICK, /* DEFINED 1 */ URL, /* DEFINED 2 */ CSV_UNDEFINED, /* DEFINED 3 */ CSV_UNDEFINED, /* DEFINED 4 */ NOTES, /* NOTE */ PALM_CSV_END, /* "0" */ PALM_CSV_CAT, /* CATEGORY */ CSV_LAST }; csv_export_common(out, e, palm_export_fields, palm_csv_handle_specials); return 0; } /* * end of csv export filters */ /* * vCard 2 addressbook export filter */ static int vcard_export_database(FILE *out, struct db_enumerator e) { db_enumerate_items(e) vcard_export_item(out, e.item); return 0; } void vcard_export_item(FILE *out, int item) { int j, email_no; char *name, *tmp; abook_list *emails, *em; fprintf(out, "BEGIN:VCARD\r\nFN:%s\r\n", safe_str(db_name_get(item))); name = get_surname(db_name_get(item)); for( j = strlen(db_name_get(item)) - 1; j >= 0; j-- ) { if((db_name_get(item))[j] == ' ') break; } fprintf(out, "N:%s;%.*s\r\n", safe_str(name), j, safe_str(db_name_get(item)) ); free(name); if(db_fget(item, NICK)) fprintf(out, "NICKNAME:%s\r\n", safe_str(db_fget(item, NICK))); if(db_fget(item, ANNIVERSARY)) fprintf(out, "BDAY:%s\r\n", safe_str(db_fget(item, ANNIVERSARY))); // see rfc6350 section 6.3.1 if(db_fget(item, ADDRESS)) { fprintf(out, "ADR:;%s;%s;%s;%s;%s;%s\r\n", // pobox (unsupported) safe_str(db_fget(item, ADDRESS2)), // ext (n°, ...) safe_str(db_fget(item, ADDRESS)), // street safe_str(db_fget(item, CITY)), // locality safe_str(db_fget(item, STATE)), // region safe_str(db_fget(item, ZIP)), // code (postal) safe_str(db_fget(item, COUNTRY)) // country ); } if(db_fget(item, PHONE)) fprintf(out, "TEL;HOME:%s\r\n", db_fget(item, PHONE)); if(db_fget(item, WORKPHONE)) fprintf(out, "TEL;WORK:%s\r\n", db_fget(item, WORKPHONE)); if(db_fget(item, FAX)) fprintf(out, "TEL;FAX:%s\r\n", db_fget(item, FAX)); if(db_fget(item, MOBILEPHONE)) fprintf(out, "TEL;CELL:%s\r\n", db_fget(item, MOBILEPHONE)); tmp = db_email_get(item); if(*tmp) { emails = csv_to_abook_list(tmp); fprintf(out, "EMAIL;PREF;INTERNET:%s\r\n", emails->data); email_no = 1; for(em = emails->next; em; em = em->next, email_no++ ) fprintf(out, "EMAIL;%d;INTERNET:%s\r\n", email_no, em->data); abook_list_free(&emails); } free(tmp); if(db_fget(item, NOTES)) fprintf(out, "NOTE:%s\r\n", db_fget(item, NOTES)); if(db_fget(item, URL)) fprintf(out, "URL:%s\r\n", db_fget(item, URL)); fprintf(out, "END:VCARD\r\n\r\n"); } /* * end of vCard export filter */ /* * mutt alias export filter */ static char * mutt_alias_genalias(int i) { char *tmp, *pos; if(db_fget(i, NICK)) return xstrdup(db_fget(i, NICK)); tmp = xstrdup(db_name_get(i)); if( ( pos = strchr(tmp, ' ') ) ) *pos = 0; strlower(tmp); return tmp; } /* * This function is a variant of abook_list_to_csv * */ static char * mutt_alias_gengroups(int i) { char *groups, *res = NULL; char groupstr[7] = "-group "; abook_list *list, *tmp; groups = db_fget(i, GROUPS); if(!groups) return NULL; list = csv_to_abook_list(groups); for(tmp = list; tmp; tmp = tmp->next) { if(tmp == list) { res = xmalloc(strlen(groupstr)+strlen(tmp->data)+1); res = strcpy(res, groupstr); } else { res = xrealloc(res, strlen(res)+1+strlen(groupstr)+strlen(tmp->data)+1); strcat(res, " "); strcat(res, groupstr); } strcat(res, tmp->data); } abook_list_free(&list); xfree(groups); return res; } static int mutt_alias_export(FILE *out, struct db_enumerator e) { char email[MAX_EMAIL_LEN]; char *alias = NULL; char *groups = NULL; int email_addresses; char *ptr; db_enumerate_items(e) { alias = (field_id(NICK) != -1) ? mutt_alias_genalias(e.item) : NULL; groups = (field_id(GROUPS) != -1) ? mutt_alias_gengroups(e.item) : NULL; get_first_email(email, e.item); /* do not output contacts without email address */ /* cause this does not make sense in mutt aliases */ if (*email) { /* output first email address */ fprintf(out,"alias "); if(groups) fprintf(out, "%s ", groups); if(alias) fprintf(out, "%s ", alias); fprintf(out, "%s <%s>\n", db_name_get(e.item), email); /* number of email addresses */ email_addresses = 1; ptr = db_email_get(e.item); while (*ptr != '\0') { if (*ptr == ',') { email_addresses++; } ptr++; } /* output other email addresses */ while (email_addresses-- > 1) { roll_emails(e.item, ROTATE_RIGHT); get_first_email(email, e.item); fprintf(out,"alias "); if( groups ) fprintf(out, "%s ", groups); if(alias) fprintf(out, "%s__%s ", alias, email); else fprintf(out, "%s__%s ", db_name_get(e.item), email); fprintf(out, "%s <%s>\n", db_name_get(e.item), email); } roll_emails(e.item, ROTATE_RIGHT); xfree(alias); xfree(groups); } } return 0; } void muttq_print_item(FILE *file, int item) { abook_list *emails, *e; char *tmp = db_email_get(item); emails = csv_to_abook_list(tmp); free(tmp); for(e = emails; e; e = e->next) { fprintf(file, "%s\t%s\t%s\n", e->data, db_name_get(item), !db_fget(item, NOTES) ?" " :db_fget(item, NOTES) ); if(!opt_get_bool(BOOL_MUTT_RETURN_ALL_EMAILS)) break; } abook_list_free(&emails); } static int mutt_query_export_database(FILE *out, struct db_enumerator e) { fprintf(out, "All items\n"); db_enumerate_items(e) muttq_print_item(out, e.item); return 0; } /* * end of mutt alias export filter */ /* * printable export filter */ static void text_write_address_us(FILE *out, int i) { fprintf(out, "\n%s", db_fget(i, ADDRESS)); if(db_fget(i, ADDRESS2)) fprintf(out, "\n%s", db_fget(i, ADDRESS2)); if(db_fget(i, CITY)) fprintf(out, "\n%s", db_fget(i, CITY)); if(db_fget(i, STATE) || db_fget(i, ZIP)) { fputc('\n', out); if(db_fget(i, STATE)) { fprintf(out, "%s", db_fget(i, STATE)); if(db_fget(i, ZIP)) fputc(' ', out); } if(db_fget(i, ZIP)) fprintf(out, "%s", db_fget(i, ZIP)); } if(db_fget(i, COUNTRY)) fprintf(out, "\n%s", db_fget(i, COUNTRY)); } static void text_write_address_uk(FILE *out, int i) { int j; for(j = ADDRESS; j <= COUNTRY; j++) if(db_fget(i, j)) fprintf(out, "\n%s", db_fget(i, j)); } static void text_write_address_eu(FILE *out, int i) { fprintf(out, "\n%s", db_fget(i, ADDRESS)); if(db_fget(i, ADDRESS2)) fprintf(out, "\n%s", db_fget(i, ADDRESS2)); if(db_fget(i, ZIP) || db_fget(i, CITY)) { fputc('\n', out); if(db_fget(i, ZIP)) { fprintf(out, "%s", db_fget(i, ZIP)); if(db_fget(i, CITY)) fputc(' ', out); } fprintf(out, "%s", safe_str(db_fget(i, CITY))); } if(db_fget(i, STATE)) fprintf(out, "\n%s", db_fget(i, STATE)); if(db_fget(i, COUNTRY)) fprintf(out, "\n%s", db_fget(i, COUNTRY)); } static int text_export_database(FILE * out, struct db_enumerator e) { abook_list *emails, *em; int j; char *realname = get_real_name(), *str = NULL, *tmp; char *style = opt_get_str(STR_ADDRESS_STYLE); fprintf(out, "-----------------------------------------\n%s's address book\n" "-----------------------------------------\n\n\n", realname); free(realname); db_enumerate_items(e) { fprintf(out, "-----------------------------------------\n\n"); fprintf(out, "%s", db_name_get(e.item)); if(db_fget(e.item, NICK) && *db_fget(e.item, NICK)) fprintf(out, "\n(%s)", db_fget(e.item, NICK)); fprintf(out, "\n"); tmp = db_email_get(e.item); if(*tmp) { emails = csv_to_abook_list(tmp); fprintf(out, "\n"); for(em = emails; em; em = em->next) fprintf(out, "%s\n", em->data); abook_list_free(&emails); } free(tmp); /* Print address */ if(db_fget(e.item, ADDRESS)) { if(!safe_strcmp(style, "us")) /* US like */ text_write_address_us(out, e.item); else if(!safe_strcmp(style, "uk")) /* UK like */ text_write_address_uk(out, e.item); else /* EU like */ text_write_address_eu(out, e.item); fprintf(out, "\n"); } if((db_fget(e.item, PHONE)) || (db_fget(e.item, WORKPHONE)) || (db_fget(e.item, FAX)) || (db_fget(e.item, MOBILEPHONE))) { fprintf(out, "\n"); for(j = PHONE; j <= MOBILEPHONE; j++) if(db_fget(e.item, j)) { get_field_info(field_id(j), NULL, &str, NULL); fprintf(out, "%s: %s\n", str, db_fget(e.item, j)); } } if(db_fget(e.item, URL)) fprintf(out, "\n%s\n", db_fget(e.item, URL)); if(db_fget(e.item, NOTES)) fprintf(out, "\n%s\n", db_fget(e.item, NOTES)); fprintf(out, "\n"); } fprintf(out, "-----------------------------------------\n"); return 0; } /* * end of printable export filter */ /* * elm alias export filter */ static int elm_alias_export(FILE *out, struct db_enumerator e) { char email[MAX_EMAIL_LEN]; char *alias = NULL; db_enumerate_items(e) { alias = mutt_alias_genalias(e.item); get_first_email(email, e.item); fprintf(out, "%s = %s = %s\n",alias,db_name_get(e.item),email); xfree(alias); } return 0; } /* * end of elm alias export filter */ /* * Spruce export filter */ static int spruce_export_database (FILE *out, struct db_enumerator e) { char email[MAX_EMAIL_LEN]; fprintf(out, "# This is a generated file made by abook for the Spruce e-mail client.\n\n"); db_enumerate_items(e) { get_first_email(email, e.item); if(strcmp(email, "")) { fprintf(out, "# Address %d\nName: %s\nEmail: %s\nMemo: %s\n\n", e.item, db_name_get(e.item), email, safe_str(db_fget(e.item, NOTES)) ); } } fprintf (out, "# End of address book file.\n"); return 0; } /* * end of Spruce export filter */ /* * wanderlust addressbook export filter */ static int wl_export_database(FILE *out, struct db_enumerator e) { char email[MAX_EMAIL_LEN]; fprintf(out, "# Wanderlust address book written by %s\n\n", PACKAGE); db_enumerate_items(e) { get_first_email(email, e.item); if(*email) { fprintf(out, "%s\t\"%s\"\t\"%s\"\n", email, safe_str(db_fget(e.item, NICK)), safe_str(db_name_get(e.item)) ); } } fprintf (out, "\n# End of address book file.\n"); return 0; } /* * end of wanderlust addressbook export filter */ /* * BSD calendar export filter */ static int bsdcal_export_database(FILE *out, struct db_enumerator e) { db_enumerate_items(e) { int year, month = 0, day = 0; char *anniversary = db_fget(e.item, ANNIVERSARY); if(anniversary) { if(!parse_date_string(anniversary, &day, &month, &year)) continue; fprintf(out, _("%02d/%02d\tAnniversary of %s\n"), month, day, safe_str(db_name_get(e.item)) ); } } return 0; } /* * end of BSD calendar export filter */ /* * custom export filter */ static int find_field_enum(char *s) { int i = -1; while(standard_fields[++i].key) if(!strcmp(standard_fields[i].key, s)) return i; return -1; } /* Convert a string with named placeholders to a *printf() compatible string. Stores the abook field values into ft. */ void parse_custom_format(char *s, char *fmt_string, enum field_types *ft) { if(! fmt_string || ! ft) { fprintf(stderr, _("parse_custom_format: fmt_string or ft not allocated\n")); exit(EXIT_FAILURE); } char tmp[1] = { 0 }; char *p, *start, *field_name = NULL; p = start = s; while(*p) { if(*p == '{') { start = ++p; if(! *start) goto cannotparse; p = strchr(start, '}'); if(! p) goto cannotparse; strcat(fmt_string, "%s"); field_name = strndup(start, (size_t)(p-start)); *ft = find_field_enum(field_name); if(*ft == -1) { fprintf(stderr, _("parse_custom_format: invalid placeholder: {%s}\n"), field_name); exit(EXIT_FAILURE); } ft++; start = ++p; } else if(*p == '\\') { ++p; if(! *p) tmp[0] = '\\'; // last char is a '\' ? else if(*p == 'n') *tmp = '\n'; else if(*p == 't') *tmp = '\t'; else if(*p == 'r') *tmp = '\r'; else if(*p == 'v') *tmp = '\v'; else if(*p == 'b') *tmp = '\b'; else if(*p == 'a') *tmp = '\a'; else *tmp = *p; strncat(fmt_string, tmp, 1); start = ++p; } // if no '\' following: quick mode using strchr/strncat else if(! strchr(start, '\\')) { p = strchr(start, '{'); if(p) { // copy until the next placeholder strncat(fmt_string, start, (size_t)(p-start)); start = p; } else { // copy till the end strncat( fmt_string, start, FORMAT_STRING_LEN - strlen(fmt_string) - 1 ); break; } } // otherwise character by character else { strncat(fmt_string, p, 1); start = ++p; } } *ft = ITEM_FIELDS; return; cannotparse: fprintf(stderr, _("%s: invalid format, index %ld\n"), __FUNCTION__, (start - s)); free(ft); exit(EXIT_FAILURE); } static int custom_export_item(FILE *out, int item, char *s, enum field_types *ft); // stores the format string generated from --outformatstr {custom_format} // (when "custom" output format is requested) // overrides default value of custom_format set by from abook.c extern char custom_format[FORMAT_STRING_LEN]; char parsed_custom_format[FORMAT_STRING_LEN]; enum field_types *custom_format_fields = 0; /* wrapper for custom_export_item: 1) avoid messing with extern pointer 2) adds \n 3) follow the prototype needed for an abook_output_item_filter entry */ void custom_print_item(FILE *out, int item) { if(custom_export_item(out, item, parsed_custom_format, custom_format_fields) == 0) fprintf(out, "\n"); } static int custom_export_item(FILE *out, int item, char *fmt, enum field_types *ft) { char *p, *q = 0; // if the first character is '!': // we first check that all fields exist before continuing if(*fmt == '!') { enum field_types *ftp = ft; while(*ft != ITEM_FIELDS) { if(! db_fget(item, *ft) ) return 1; ft++; } ft = ftp; fmt++; } while (*fmt) { if(!strncmp(fmt, "%s", 2)) { fprintf(out, "%s", safe_str(db_fget(item, *ft))); ft++; fmt+=2; } else if (*ft == ITEM_FIELDS) { fprintf(out, "%s", fmt); return 0; } else { p = strchr(fmt, '%'); if(*p) { q = strndup(fmt, (size_t)(p-fmt)); fprintf(out, "%s", q); free(q); fmt = p; } else { fprintf(out, "%s", fmt); return 0; } } } return 0; } static int custom_export_database(FILE *out, struct db_enumerator e) { enum field_types *ft = (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types)); parse_custom_format(custom_format, (char*)&parsed_custom_format, ft); db_enumerate_items(e) { if(custom_export_item(out, e.item, (char*)&parsed_custom_format, ft) == 0) fprintf(out, "\n"); } return 0; } /* * end of custom export filter */ abook-0.6.1/edit.h0000644000175000017500000000122312604110363012073 0ustar yugyug#ifndef _EDIT_H #define _EDIT_H #include "misc.h" /* for rotate_dir enum definition */ void edit_item(int item); void get_first_email(char *str, int item); void roll_emails(int item, enum rotate_dir dir); void add_item(); int parse_date_string(char *s, int *day, int *month, int *year); #define EDITW_COLS (COLS - 6) #define EDITW_LINES (LINES - 5) #define EDITW_TOP 2 #define EDITW_X 3 #define EDITOR_HELPLINE N_("?:help q:quit editor") #define TABLINE 1 #define TAB_COLON_POS 28 #define FIELDNAME_MAX_WIDTH 20 #define FIELD_MAX_WIDTH (EDITW_COLS - TAB_COLON_POS - FIELDS_START_X - 2) #define FIELDS_START_Y 4 #define FIELDS_START_X 4 #endif abook-0.6.1/doc/0000755000175000017500000000000012604110363011544 5ustar yugyugabook-0.6.1/doc/HOWTO.translating_abook0000644000175000017500000002361012604110363016071 0ustar yugyugForeword -------- This howto is deliberately incomplete, focusing on working with gettext for abook specifically. For more comprehensive informations or to grasp the Big Picture of Native Language Support, you should refer to the GNU gettext manual at: http://www.gnu.org/software/gettext/manual/ After a quick description of how things work, three parts aimed at three different people involved in the translation chain will follow: coders, language coordinator, and translators. Overview -------- To be able to display texts in the native language of the user, two steps are required: internationalization (i18n) and localization (l10n). i18n is about making abook support multiple languages. It is performed by coders, who will mark translatable texts and provide a way to display them translated at runtime. l10n is about making the i18n'ed abook adapt to the specific language of the user, ie translating the strings previously marked by the developers, and setting the environment correctly for abook to use the result of this translation. So, translatable strings are first marked by the coders within the C source files, then gathered in a template file (abook.pot). The content of this template file is then merged with the translation files for each language (fr.po for french, for instance). A given translation team will take this file, translate its strings, and send it back to the developers. At compilation time, a binary version of this file (for efficiency reasons) will be produced (fr.mo), and then installed. Then abook will use this file at runtime, translating the strings according to the locale settings of the user. The coders ---------- * Translating a new file. First, you have to make your C source file aware of the gettext macros by including "gettext.h". Then, you need to make gettext aware that this file contains translatable strings by adding its name to po/POTFILES.in * Translatable strings This is a two parts process: marking the string to tell gettext to make it available to translators (via the .pot file), and actually translating the string at runtime. There is basically three functions/macros available: * _(): mark the string and translate it. * N_(): only mark the string * gettext(): only translate The last two are used in conjunction, when the string declaration is dissociated in the code from its actual use. You'll then use N_() to mark the string, and later use a gettext() call to translate it. And that's all, really. Should the need arise later, it might be handy to know that a few more mechanisms exist, for example to deal with ambiguities (same string but with different roles should be translated differently), or plurals, etc. This is all explained in depth in the gettext manual. But the three macros seen above should be enough to handle about all the situations met while internationalizing abook. The language coordinator ------------------------ This is neither a coder, nor a translator. His role is in-between. He is the one who will merge the strings changed by the coders into the translation files, and merge back the translation files sent to him by the translators. He will also take care of initiating language files whenever a new translator shows up. * Updating the template file Translatable strings evolve all the time: coders add some, remove others, change a lot of them. At some point, these strings need to be merged into the po/abook.pot file to reflect the current situation. This is done simply by executing 'make -C po abook.pot-update'. The xgettext utility will then parse the files listed into po/POTFILES.in, looking for marked strings, and updating po/abook.pot. * Merging the new strings into the po-files After updating, you will have to merge the changes into every .po file. This is done by running 'make -C po update-po', which will use the msgmerge program to perform this task. Then, some strings will be marked as "fuzzy" (ie needing review, because of slight changes), some strings will be commented out because of removal from sources, some strings will be added, and some strings will not be changed at all. The po-file is now in sync. * Compiling plain text translation into binary files suited for runtime Please note that this is implicitly done in the previous step. Anyway, you just have to run 'make -C po update-gmo' to update the mo-files (or gmo-files, which is a GNU specific naming) from the po-files. For (re)generating just one particular language (french as example), use 'cd po ; msgfmt -c --statistics -o fr.gmo fr.po'. * Initiating the translation of a new language So a Swedish translator just contacted you to contribute a translation. Nice! First, find out what the locale name is. For swedish, it is 'sv_SE', or simply 'sv'. This is the value the user will have to put in his LC_MESSAGES/LANG environment variable for software to be translated. Then, go into the po/directory, and create a new po-file from the template file: 'msginit -i abook.pot -o sv.po -l sv --no-translator'. Now, having this sv.po file, the translator is ready to begin. Last step is making gettext aware of this new language. Just add the locale name to the po/LINGUAS file. * Committing a po-file received from a translator The Swedish translator just sent you an updated translation, in sv.po.new. Before replacing sv.po in the po/ directory and committing it to cvs, you should check everything is fine, with this step: 'msgmerge sv.po.new abook.pot -o sv.po'. The translators --------------- The gettext part is the easy one: the format of the po-files is really straightforward. The hard part will be the quest for the right word, the best fitting formulation. po-files are made of four things: * location lines: tells you where the strings can be seen (name of file and line number), in case you need to see a bit of context. * msgid lines: the strings to translate. * msgstr lines: the translated strings. * lines prefixed with '#': comments (some with a special meaning, as we will see below). Basically, all you have to do is fill the msgstr lines with the translation of the above msgid line. And send the result to the language coordinator of abook. A few notes: * Fuzzy strings You will meet strings marked with a "#, fuzzy" comment. abook won't use the translations of such strings until you do something about them. A string being fuzzy means either that the string has already been translated but has since been changed in the sources of the program, or that this is a new string for which gettext made a 'wild guess' for the translation, based on other strings in the file. It means you have to review the translation. Sometimes, the original string has changed just because a typo has been fixed. In this case, you won't have to change anything. But sometimes, the translation will no longer be accurate and needs to be changed. Once you are done and happy with the translation, just remove the "#, fuzzy" line, and the translation will be used again in abook. * c-format strings and special sequences Some strings have the following comment: "#, c-format". This tells that parts of the string to translate have a special meaning for the program, and that you should leave them alone. For instance, %-sequences, like "%s". These means that abook will replace them with another string. So it is important it remains. There are also \-sequences, like \n or \t. Leave them, too. The former represents an end of line, the latter a tabulation. * Translations can be wrapped If lines are too long, you can just break them like this: msgid "" "some very long line" "another line" * po-file header At the very beginning of the po-file, the first string form a header, where various kind of information has to be filled in. Most important one is the charset. It should resemble "Content-Type: text/plain; charset=utf-8\n" You should also fill in the Last-Translator field, so that potential contributors can contact you if they want to join you in the translation team, or have remarks/typo fixes to give about the translations. You can either just give your name/nick, or add an email address, f ex "Last-Translator: Cédric Duval \n". * Comments Adding comments (lines begining with the '#' character) can be a good way to point out problems or translation difficulties to proofreaders or other members of your team. * Strings size abook is a curses/console program, thus it can be heavily dependant on the terminal size (number of columns). You should think about this when translating. Often, a string must fit into a single line (standard length is 80 characters). Don't translate blindly, try to look where your string will be displayed to adapt your translation. * Testing translations To give a look at the live translations without really installing abook you can install abook and its mo files in a subdirectory: ./configure --prefix $(pwd)/fakeinstall/usr ; make install Then, eg: LANGUAGE=sv ./fakeinstall/usr/bin/abook * A few useful tools The po-file format is very simple, and the file can be edited with a standard text editor. But if you prefer, there are few specialized tools you may find convenient for translating: * poEdit (http://www.poedit.org/) * Lokalize (http://userbase.kde.org/Lokalize/) * GTranslator (http://projects.gnome.org/gtranslator/) * Emacs po mode * Vim po mode (http://vim.sourceforge.net/scripts/script.php?script_id=695 or http://vim.sourceforge.net/scripts/script.php?script_id=913) * And certainly others I'm not aware of. Just tell me! And finally ----------- I hope you'll have fun contributing to a more internationalized world. :) If you have any more questions, don't hesitate to contact me (Cédric Duval ) or the abook development mailing list (http://lists.sourceforge.net/lists/listinfo/abook-devel). abook-0.6.1/depcomp0000755000175000017500000005601612604110363012364 0ustar yugyug#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: abook-0.6.1/configure.ac0000644000175000017500000001163612604110363013274 0ustar yugyugdnl abook configure.in AC_INIT([Abook], [0.6.1], [abook-devel@lists.sourceforge.net], [abook], [http://abook.sourceforge.net]) AC_CONFIG_SRCDIR([abook.c]) AC_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE dnl --------------- dnl gettext support dnl --------------- AC_USE_SYSTEM_EXTENSIONS AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.18.1]) AC_DEFUN([ABOOK_EXPAND_PREFIX], [ $1=$2 dnl expanding twice, since from autoconf 2.60 on, $datadir refers to dnl $datarootdir which in turn refers to $prefix $1=`( test "x$prefix" = xNONE && prefix="$ac_default_prefix" eval tmp_abook_prefix=\""[$]$1"\" eval echo $tmp_abook_prefix )` ]) ABOOK_EXPAND_PREFIX(abook_localedir, "$datadir/locale") localedir="\$(datadir)/locale" AC_ARG_WITH(localedir, [ --with-localedir=PATH Where the locale files are installed ]) if test "x$with_localedir" != "x"; then abook_localedir="$with_localedir" localedir="$with_localedir" fi AC_DEFINE_UNQUOTED(LOCALEDIR, "$abook_localedir", [locale directory]) AC_SUBST(localedir) AM_CONDITIONAL(USE_INCLUDED_INTL_H, test x$USE_INCLUDED_LIBINTL = xyes) dnl ---------------------- dnl end of gettext support dnl ---------------------- AC_PROG_CC AC_SEARCH_LIBS([strerror],[cposix]) if test "x$U" != "x"; then AC_MSG_ERROR(Compiler not ANSI compliant) fi AC_C_INLINE AC_PROG_INSTALL AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h locale.h sys/ioctl.h iconv.h) AC_CHECK_HEADER(stdarg.h,AC_DEFINE(HAVE_STDARG_H, 1, [Define if you have the header file.]),AC_MSG_ERROR([*** stdarg.h is missing on your system ***])) AC_FUNC_STRCOLL AC_CHECK_FUNCS(setlocale) ac_widec_funcs=yes AC_CHECK_HEADER(wchar.h,[ ac_have_wchar_h=yes AC_DEFINE(HAVE_WCHAR_H, 1, [Define if you have the header file.])], [ac_have_wchar_h=no]) AC_CHECK_FUNCS(mbtowc wcwidth mbrtowc mbsinit,,ac_widec_funcs=no) AC_CHECK_DECLS(wcwidth) AC_CHECK_TYPE(wchar_t,,ac_widec_funcs=no) if test x$ac_widec_funcs = xyes -a x$ac_have_wchar_h = xyes; then ac_widec_possible=yes else ac_widec_possible=no fi dnl ------------------- dnl (n)curses detection dnl ------------------- abook_cv_curses=/usr AC_ARG_WITH(curses, [ --with-curses=DIR Where ncurses is installed ], [if test $withval != yes; then abook_cv_curses=$withval fi if test x$abook_cv_curses != x/usr; then LDFLAGS="-L${abook_cv_curses}/lib $LDFLAGS" CPPFLAGS="$CPPFLAGS -I${abook_cv_curses}/include" fi]) AC_CHECK_LIB(ncursesw, initscr, [LIBS="$LIBS -lncursesw" if test x$abook_cv_curses = x/usr -a -d /usr/include/ncursesw; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi AC_CHECK_HEADERS(ncurses.h)],[ ac_widec_possible=no AC_CHECK_LIB(ncurses, initscr, [LIBS="$LIBS -lncurses" if test x$abook_cv_curses = x/usr -a -d /usr/include/ncurses; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncurses" fi AC_CHECK_HEADERS(ncurses.h)], [CF_CURSES_LIBS]) ]) dnl -------------------------- dnl end of (n)curses detection dnl -------------------------- dnl ------------------ dnl readline detection dnl ------------------ abook_cv_readline=/usr AC_ARG_WITH(readline, [ --with-readline=DIR Where readline is installed ], [if test $withval != yes; then abook_cv_readline=$withval fi if test x$abook_cv_readline != x/usr; then LDFLAGS="-L${abook_cv_readline}/lib $LDFLAGS" CPPFLAGS="$CPPFLAGS -I${abook_cv_readline}/include" fi]) AC_LIB_READLINE if test x$ac_cv_lib_readline = xno -o x$ac_cv_lib_readline_history = xno; then AC_MSG_ERROR([*** readline library not found or it doesn't support history ***]) fi dnl ------------------------- dnl end of readline detection dnl ------------------------- dnl ------------------ dnl vformat detection dnl ------------------ AC_ARG_ENABLE(vformat, [ --enable-vformat Use libvformat is available ], [case "${enableval}" in yes) vformat=true ;; no) vformat=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-vformat) ;; esac], [vformat=false]) if test x$vformat = xtrue; then AC_CHECK_HEADER([vf_iface.h], [ AC_CHECK_LIB([vformat], [vf_read_file], [ MODULES="$MODULES m_vcf" AC_DEFINE(HAVE_VFORMAT,1,[Defined if the vformat library is available]) have_vformat=yes ]) ]) fi AM_CONDITIONAL(ENABLE_VFORMAT_SUPPORT,test x"$have_vformat" = "xyes") dnl ------------------------- dnl end of vformat detection dnl ------------------------- if test x$ac_widec_possible = xyes; then AC_DEFINE(HANDLE_MULTIBYTE, 1, [Handle multibyte characters]) fi AC_CHECK_FUNCS(resizeterm) AC_CHECK_FUNCS(snprintf vsnprintf) AC_CHECK_FUNCS(strcasestr, AC_DEFINE(HAVE_STRCASESTR)) AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging support ], [case "${enableval}" in yes) debug=true ;; no) debug=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac], [debug=false]) if test x$debug = xtrue; then CPPFLAGS="-DDEBUG=1 $CPPFLAGS" CFLAGS="-g $CFLAGS" fi if test x$GCC = xyes; then CFLAGS="-Wall $CFLAGS" fi AC_CONFIG_FILES([Makefile abook.spec po/Makefile.in]) AC_OUTPUT abook-0.6.1/configure0000755000175000017500000110716712604110363012723 0ustar yugyug#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Abook 0.6.1. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: abook-devel@lists.sourceforge.net about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Abook' PACKAGE_TARNAME='abook' PACKAGE_VERSION='0.6.1' PACKAGE_STRING='Abook 0.6.1' PACKAGE_BUGREPORT='abook-devel@lists.sourceforge.net' PACKAGE_URL='http://abook.sourceforge.net' ac_unique_file="abook.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gt_needs= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ENABLE_VFORMAT_SUPPORT_FALSE ENABLE_VFORMAT_SUPPORT_TRUE USE_INCLUDED_INTL_H_FALSE USE_INCLUDED_INTL_H_TRUE POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS host_os host_vendor host_cpu host build_os build_vendor build_cpu build XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_nls with_gnu_ld enable_rpath with_libiconv_prefix with_libintl_prefix with_localedir with_curses with_readline enable_vformat enable_debug ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Abook 0.6.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/abook] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Abook 0.6.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-vformat Use libvformat is available --enable-debug Enable debugging support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-localedir=PATH Where the locale files are installed --with-curses=DIR Where ncurses is installed --with-readline=DIR Where readline is installed Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . Abook home page: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Abook configure 0.6.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------------------------ ## ## Report this to abook-devel@lists.sourceforge.net ## ## ------------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Abook $as_me 0.6.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.14' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='abook' VERSION='0.6.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 $as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } if ${ac_cv_should_define__xopen_source+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_should_define__xopen_source=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_should_define__xopen_source=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 $as_echo "$ac_cv_should_define__xopen_source" >&6; } test $ac_cv_should_define__xopen_source = yes && $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" abook_localedir="$datadir/locale" abook_localedir=`( test "x$prefix" = xNONE && prefix="$ac_default_prefix" eval tmp_abook_prefix=\""$abook_localedir"\" eval echo $tmp_abook_prefix )` localedir="\$(datadir)/locale" # Check whether --with-localedir was given. if test "${with_localedir+set}" = set; then : withval=$with_localedir; fi if test "x$with_localedir" != "x"; then abook_localedir="$with_localedir" localedir="$with_localedir" fi cat >>confdefs.h <<_ACEOF #define LOCALEDIR "$abook_localedir" _ACEOF if test x$USE_INCLUDED_LIBINTL = xyes; then USE_INCLUDED_INTL_H_TRUE= USE_INCLUDED_INTL_H_FALSE='#' else USE_INCLUDED_INTL_H_TRUE='#' USE_INCLUDED_INTL_H_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if ${ac_cv_search_strerror+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_strerror+:} false; then : break fi done if ${ac_cv_search_strerror+:} false; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi if test "x$U" != "x"; then as_fn_error $? "Compiler not ANSI compliant" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in unistd.h locale.h sys/ioctl.h iconv.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default" if test "x$ac_cv_header_stdarg_h" = xyes; then : $as_echo "#define HAVE_STDARG_H 1" >>confdefs.h else as_fn_error $? "*** stdarg.h is missing on your system ***" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5 $as_echo_n "checking for working strcoll... " >&6; } if ${ac_cv_func_strcoll_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_strcoll_works=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { return (strcoll ("abc", "def") >= 0 || strcoll ("ABC", "DEF") >= 0 || strcoll ("123", "456") >= 0) ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strcoll_works=yes else ac_cv_func_strcoll_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strcoll_works" >&5 $as_echo "$ac_cv_func_strcoll_works" >&6; } if test $ac_cv_func_strcoll_works = yes; then $as_echo "#define HAVE_STRCOLL 1" >>confdefs.h fi for ac_func in setlocale do : ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale" if test "x$ac_cv_func_setlocale" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETLOCALE 1 _ACEOF fi done ac_widec_funcs=yes ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" if test "x$ac_cv_header_wchar_h" = xyes; then : ac_have_wchar_h=yes $as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h else ac_have_wchar_h=no fi for ac_func in mbtowc wcwidth mbrtowc mbsinit do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else ac_widec_funcs=no fi done ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "$ac_includes_default" if test "x$ac_cv_have_decl_wcwidth" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCWIDTH $ac_have_decl _ACEOF ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "$ac_includes_default" if test "x$ac_cv_type_wchar_t" = xyes; then : else ac_widec_funcs=no fi if test x$ac_widec_funcs = xyes -a x$ac_have_wchar_h = xyes; then ac_widec_possible=yes else ac_widec_possible=no fi abook_cv_curses=/usr # Check whether --with-curses was given. if test "${with_curses+set}" = set; then : withval=$with_curses; if test $withval != yes; then abook_cv_curses=$withval fi if test x$abook_cv_curses != x/usr; then LDFLAGS="-L${abook_cv_curses}/lib $LDFLAGS" CPPFLAGS="$CPPFLAGS -I${abook_cv_curses}/include" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncursesw" >&5 $as_echo_n "checking for initscr in -lncursesw... " >&6; } if ${ac_cv_lib_ncursesw_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncursesw $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ncursesw_initscr=yes else ac_cv_lib_ncursesw_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_initscr" >&5 $as_echo "$ac_cv_lib_ncursesw_initscr" >&6; } if test "x$ac_cv_lib_ncursesw_initscr" = xyes; then : LIBS="$LIBS -lncursesw" if test x$abook_cv_curses = x/usr -a -d /usr/include/ncursesw; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi for ac_header in ncurses.h do : ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default" if test "x$ac_cv_header_ncurses_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NCURSES_H 1 _ACEOF fi done else ac_widec_possible=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lncurses" >&5 $as_echo_n "checking for initscr in -lncurses... " >&6; } if ${ac_cv_lib_ncurses_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ncurses_initscr=yes else ac_cv_lib_ncurses_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_initscr" >&5 $as_echo "$ac_cv_lib_ncurses_initscr" >&6; } if test "x$ac_cv_lib_ncurses_initscr" = xyes; then : LIBS="$LIBS -lncurses" if test x$abook_cv_curses = x/usr -a -d /usr/include/ncurses; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncurses" fi for ac_header in ncurses.h do : ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default" if test "x$ac_cv_header_ncurses_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NCURSES_H 1 _ACEOF fi done else ac_fn_c_check_func "$LINENO" "initscr" "ac_cv_func_initscr" if test "x$ac_cv_func_initscr" = xyes; then : else case $host_os in #(vi freebsd*) #(vi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgoto in -lmytinfo" >&5 $as_echo_n "checking for tgoto in -lmytinfo... " >&6; } if ${ac_cv_lib_mytinfo_tgoto+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmytinfo $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgoto (); int main () { return tgoto (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_mytinfo_tgoto=yes else ac_cv_lib_mytinfo_tgoto=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mytinfo_tgoto" >&5 $as_echo "$ac_cv_lib_mytinfo_tgoto" >&6; } if test "x$ac_cv_lib_mytinfo_tgoto" = xyes; then : LIBS="-lmytinfo $LIBS" fi ;; hpux10.*|hpux11.*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lcur_colr" >&5 $as_echo_n "checking for initscr in -lcur_colr... " >&6; } if ${ac_cv_lib_cur_colr_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcur_colr $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cur_colr_initscr=yes else ac_cv_lib_cur_colr_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cur_colr_initscr" >&5 $as_echo "$ac_cv_lib_cur_colr_initscr" >&6; } if test "x$ac_cv_lib_cur_colr_initscr" = xyes; then : LIBS="-lcur_colr $LIBS" CFLAGS="-I/usr/include/curses_colr $CFLAGS" ac_cv_func_initscr=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -lHcurses" >&5 $as_echo_n "checking for initscr in -lHcurses... " >&6; } if ${ac_cv_lib_Hcurses_initscr+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lHcurses $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_Hcurses_initscr=yes else ac_cv_lib_Hcurses_initscr=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Hcurses_initscr" >&5 $as_echo "$ac_cv_lib_Hcurses_initscr" >&6; } if test "x$ac_cv_lib_Hcurses_initscr" = xyes; then : # HP's header uses __HP_CURSES, but user claims _HP_CURSES. LIBS="-lHcurses $LIBS" CFLAGS="-D__HP_CURSES -D_HP_CURSES $CFLAGS" ac_cv_func_initscr=yes fi fi ;; linux*) # Suse Linux does not follow /usr/lib convention LIBS="$LIBS -L/lib" ;; esac if test ".$With5lib" != ".no" ; then if test -d /usr/5lib ; then # SunOS 3.x or 4.x CPPFLAGS="$CPPFLAGS -I/usr/5include" LIBS="$LIBS -L/usr/5lib" fi fi if test ".$ac_cv_func_initscr" != .yes ; then cf_save_LIBS="$LIBS" cf_term_lib="" cf_curs_lib="" # Check for library containing tgoto. Do this before curses library # because it may be needed to link the test-case for initscr. ac_fn_c_check_func "$LINENO" "tgoto" "ac_cv_func_tgoto" if test "x$ac_cv_func_tgoto" = xyes; then : cf_term_lib=predefined else for cf_term_lib in termcap termlib unknown do as_ac_Lib=`$as_echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgoto in -l$cf_term_lib" >&5 $as_echo_n "checking for tgoto in -l$cf_term_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$cf_term_lib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgoto (); int main () { return tgoto (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : break fi done fi # Check for library containing initscr test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown do as_ac_Lib=`$as_echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for initscr in -l$cf_curs_lib" >&5 $as_echo_n "checking for initscr in -l$cf_curs_lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$cf_curs_lib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char initscr (); int main () { return initscr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : break fi done test $cf_curs_lib = unknown && as_fn_error $? "no curses library found" "$LINENO" 5 LIBS="-l$cf_curs_lib $cf_save_LIBS" if test "$cf_term_lib" = unknown ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can link with $cf_curs_lib library" >&5 $as_echo_n "checking if we can link with $cf_curs_lib library... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <${cf_cv_ncurses_header-curses.h}> int main () { initscr() ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : cf_result=yes else cf_result=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_result" >&5 $as_echo "$cf_result" >&6; } test $cf_result = no && as_fn_error $? "Cannot link curses library" "$LINENO" 5 elif test "$cf_term_lib" != predefined ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 $as_echo_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <${cf_cv_ncurses_header-curses.h}> int main () { initscr(); tgoto((char *)0, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : cf_result=no else LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <${cf_cv_ncurses_header-curses.h}> int main () { initscr() ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : cf_result=yes else cf_result=error fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cf_result" >&5 $as_echo "$cf_result" >&6; } fi fi fi fi fi abook_cv_readline=/usr # Check whether --with-readline was given. if test "${with_readline+set}" = set; then : withval=$with_readline; if test $withval != yes; then abook_cv_readline=$withval fi if test x$abook_cv_readline != x/usr; then LDFLAGS="-L${abook_cv_readline}/lib $LDFLAGS" CPPFLAGS="$CPPFLAGS -I${abook_cv_readline}/include" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a readline compatible library" >&5 $as_echo_n "checking for a readline compatible library... " >&6; } if ${ac_cv_lib_readline+:} false; then : $as_echo_n "(cached) " >&6 else ORIG_LIBS="$LIBS" for readline_lib in readline edit editline; do for termcap_lib in "" termcap curses ncurses; do if test -z "$termcap_lib"; then TRY_LIB="-l$readline_lib" else TRY_LIB="-l$readline_lib -l$termcap_lib" fi LIBS="$ORIG_LIBS $TRY_LIB" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char readline (); int main () { return readline (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_readline="$TRY_LIB" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -n "$ac_cv_lib_readline"; then break fi done if test -n "$ac_cv_lib_readline"; then break fi done if test -z "$ac_cv_lib_readline"; then ac_cv_lib_readline="no" fi LIBS="$ORIG_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline" >&5 $as_echo "$ac_cv_lib_readline" >&6; } if test "$ac_cv_lib_readline" != "no"; then LIBS="$LIBS $ac_cv_lib_readline" $as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h for ac_header in readline.h readline/readline.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5 $as_echo_n "checking whether readline supports history... " >&6; } if ${ac_cv_lib_readline_history+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_lib_readline_history="no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char add_history (); int main () { return add_history (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_readline_history="yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_history" >&5 $as_echo "$ac_cv_lib_readline_history" >&6; } if test "$ac_cv_lib_readline_history" = "yes"; then $as_echo "#define HAVE_READLINE_HISTORY 1" >>confdefs.h for ac_header in history.h readline/history.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi fi if test x$ac_cv_lib_readline = xno -o x$ac_cv_lib_readline_history = xno; then as_fn_error $? "*** readline library not found or it doesn't support history ***" "$LINENO" 5 fi # Check whether --enable-vformat was given. if test "${enable_vformat+set}" = set; then : enableval=$enable_vformat; case "${enableval}" in yes) vformat=true ;; no) vformat=false ;; *) as_fn_error $? "bad value ${enableval} for --enable-vformat" "$LINENO" 5 ;; esac else vformat=false fi if test x$vformat = xtrue; then ac_fn_c_check_header_mongrel "$LINENO" "vf_iface.h" "ac_cv_header_vf_iface_h" "$ac_includes_default" if test "x$ac_cv_header_vf_iface_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vf_read_file in -lvformat" >&5 $as_echo_n "checking for vf_read_file in -lvformat... " >&6; } if ${ac_cv_lib_vformat_vf_read_file+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lvformat $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char vf_read_file (); int main () { return vf_read_file (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_vformat_vf_read_file=yes else ac_cv_lib_vformat_vf_read_file=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vformat_vf_read_file" >&5 $as_echo "$ac_cv_lib_vformat_vf_read_file" >&6; } if test "x$ac_cv_lib_vformat_vf_read_file" = xyes; then : MODULES="$MODULES m_vcf" $as_echo "#define HAVE_VFORMAT 1" >>confdefs.h have_vformat=yes fi fi fi if test x"$have_vformat" = "xyes"; then ENABLE_VFORMAT_SUPPORT_TRUE= ENABLE_VFORMAT_SUPPORT_FALSE='#' else ENABLE_VFORMAT_SUPPORT_TRUE='#' ENABLE_VFORMAT_SUPPORT_FALSE= fi if test x$ac_widec_possible = xyes; then $as_echo "#define HANDLE_MULTIBYTE 1" >>confdefs.h fi for ac_func in resizeterm do : ac_fn_c_check_func "$LINENO" "resizeterm" "ac_cv_func_resizeterm" if test "x$ac_cv_func_resizeterm" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RESIZETERM 1 _ACEOF fi done for ac_func in snprintf vsnprintf do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in strcasestr do : ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" if test "x$ac_cv_func_strcasestr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCASESTR 1 _ACEOF $as_echo "#define HAVE_STRCASESTR 1" >>confdefs.h fi done # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; case "${enableval}" in yes) debug=true ;; no) debug=false ;; *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; esac else debug=false fi if test x$debug = xtrue; then CPPFLAGS="-DDEBUG=1 $CPPFLAGS" CFLAGS="-g $CFLAGS" fi if test x$GCC = xyes; then CFLAGS="-Wall $CFLAGS" fi ac_config_files="$ac_config_files Makefile abook.spec po/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_INCLUDED_INTL_H_TRUE}" && test -z "${USE_INCLUDED_INTL_H_FALSE}"; then as_fn_error $? "conditional \"USE_INCLUDED_INTL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_VFORMAT_SUPPORT_TRUE}" && test -z "${ENABLE_VFORMAT_SUPPORT_FALSE}"; then as_fn_error $? "conditional \"ENABLE_VFORMAT_SUPPORT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Abook $as_me 0.6.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to . Abook home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Abook config.status 0.6.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "abook.spec") CONFIG_FILES="$CONFIG_FILES abook.spec" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi abook-0.6.1/config.sub0000755000175000017500000010541212604110363012765 0ustar yugyug#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-10-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: abook-0.6.1/config.rpath0000755000175000017500000004401212604110363013310 0ustar yugyug#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2010 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux* | k*bsd*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) library_names_spec='$libname.a' ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd1*) ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; nto-qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < header file. */ #undef HAVE_HISTORY_H /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if you have a readline compatible library */ #undef HAVE_LIBREADLINE /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the `mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if you have the `mbtowc' function. */ #undef HAVE_MBTOWC /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_NCURSES_H /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_H /* Define if your readline library has \`add_history' */ #undef HAVE_READLINE_HISTORY /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_HISTORY_H /* Define to 1 if you have the header file. */ #undef HAVE_READLINE_READLINE_H /* Define to 1 if you have the `resizeterm' function. */ #undef HAVE_RESIZETERM /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasestr' function. */ #undef HAVE_STRCASESTR /* Define to 1 if you have the `strcoll' function and it is properly defined. */ #undef HAVE_STRCOLL /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Defined if the vformat library is available */ #undef HAVE_VFORMAT /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define if you have the header file. */ #undef HAVE_WCHAR_H /* Define to 1 if you have the `wcwidth' function. */ #undef HAVE_WCWIDTH /* locale directory */ #undef LOCALEDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ #undef _NETBSD_SOURCE /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for 'stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif abook-0.6.1/config.guess0000755000175000017500000013036112604110363013323 0ustar yugyug#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: abook-0.6.1/color.h0000644000175000017500000000040112604110363012261 0ustar yugyug #ifndef __ABOOK_COLORS_H_ #define __ABOOK_COLORS_H_ #define COLOR_DEFAULT -1 enum { CP_HEADER = 1, CP_FOOTER, CP_LIST_EVEN, CP_LIST_ODD, CP_LIST_HEADER, CP_LIST_HIGHLIGHT, CP_TAB_BORDER, CP_TAB_LABEL, CP_FIELD_NAME, CP_FIELD_VALUE, }; #endif abook-0.6.1/aclocal.m40000644000175000017500000012473412604110363012652 0ustar yugyug# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for 'mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl FIXME we are no longer going to remove this! adjust warning dnl FIXME message accordingly. AC_DIAGNOSE([obsolete], [$0: this macro is deprecated, and will soon be removed. You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead, and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.]) dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/extensions.m4]) m4_include([m4/gettext.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/nls.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) m4_include([acinclude.m4]) abook-0.6.1/acinclude.m40000644000175000017500000001331612604110363013174 0ustar yugyugdnl --------------------------------------------------------------------------- dnl Look for the curses libraries. Older curses implementations may require dnl termcap/termlib to be linked as well. AC_DEFUN([CF_CURSES_LIBS],[ AC_CHECK_FUNC(initscr,,[ case $host_os in #(vi freebsd*) #(vi AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"]) ;; hpux10.*|hpux11.*) AC_CHECK_LIB(cur_colr,initscr,[ LIBS="-lcur_colr $LIBS" CFLAGS="-I/usr/include/curses_colr $CFLAGS" ac_cv_func_initscr=yes ],[ AC_CHECK_LIB(Hcurses,initscr,[ # HP's header uses __HP_CURSES, but user claims _HP_CURSES. LIBS="-lHcurses $LIBS" CFLAGS="-D__HP_CURSES -D_HP_CURSES $CFLAGS" ac_cv_func_initscr=yes ])]) ;; linux*) # Suse Linux does not follow /usr/lib convention LIBS="$LIBS -L/lib" ;; esac if test ".$With5lib" != ".no" ; then if test -d /usr/5lib ; then # SunOS 3.x or 4.x CPPFLAGS="$CPPFLAGS -I/usr/5include" LIBS="$LIBS -L/usr/5lib" fi fi if test ".$ac_cv_func_initscr" != .yes ; then cf_save_LIBS="$LIBS" cf_term_lib="" cf_curs_lib="" # Check for library containing tgoto. Do this before curses library # because it may be needed to link the test-case for initscr. AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[ for cf_term_lib in termcap termlib unknown do AC_CHECK_LIB($cf_term_lib,tgoto,[break]) done ]) # Check for library containing initscr test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" for cf_curs_lib in cursesX curses ncurses xcurses jcurses unknown do AC_CHECK_LIB($cf_curs_lib,initscr,[break]) done test $cf_curs_lib = unknown && AC_ERROR(no curses library found) LIBS="-l$cf_curs_lib $cf_save_LIBS" if test "$cf_term_lib" = unknown ; then AC_MSG_CHECKING(if we can link with $cf_curs_lib library) AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>], [initscr()], [cf_result=yes], [cf_result=no]) AC_MSG_RESULT($cf_result) test $cf_result = no && AC_ERROR(Cannot link curses library) elif test "$cf_term_lib" != predefined ; then AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries) AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>], [initscr(); tgoto((char *)0, 0, 0);], [cf_result=no], [ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>], [initscr()], [cf_result=yes], [cf_result=error]) ]) AC_MSG_RESULT($cf_result) fi fi ])]) dnl @synopsis AC_LIB_READLINE dnl dnl Searches for a readline compatible library. If found, defines dnl `HAVE_LIBREADLINE'. If the found library has the `add_history' dnl function, sets also `HAVE_READLINE_HISTORY'. Also checks for the dnl locations of the necessary include files and sets `HAVE_READLINE_H' dnl or `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or dnl 'HAVE_HISTORY_H' if the corresponding include files exists. dnl dnl The libraries that may be readline compatible are `libedit', dnl `libeditline' and `libreadline'. Sometimes we need to link a termcap dnl library for readline to work, this macro tests these cases too by dnl trying to link with `libtermcap', `libcurses' or `libncurses' before dnl giving up. dnl dnl Here is an example of how to use the information provided by this dnl macro to perform the necessary includes or declarations in a C file: dnl dnl #include dnl dnl #ifdef HAVE_LIBREADLINE dnl #if defined(HAVE_READLINE_READLINE_H) dnl #include dnl #elif defined(HAVE_READLINE_H) dnl #include dnl #else /* !defined(HAVE_READLINE_H) */ dnl extern char *readline (); dnl #endif /* !defined(HAVE_READLINE_H) */ dnl char *cmdline = NULL; dnl #else /* !defined(HAVE_READLINE_READLINE_H) */ dnl /* no readline */ dnl #endif /* HAVE_LIBREADLINE */ dnl dnl #ifdef HAVE_READLINE_HISTORY dnl #if defined(HAVE_READLINE_HISTORY_H) dnl #include dnl #elif defined(HAVE_HISTORY_H) dnl #include dnl #else /* !defined(HAVE_HISTORY_H) */ dnl extern void add_history (); dnl extern int write_history (); dnl extern int read_history (); dnl #endif /* defined(HAVE_READLINE_HISTORY_H) */ dnl /* no history */ dnl #endif /* HAVE_READLINE_HISTORY */ dnl dnl dnl @version $Id$ dnl @author Ville Laurikari dnl AC_DEFUN([AC_LIB_READLINE], [ AC_CACHE_CHECK([for a readline compatible library], ac_cv_lib_readline, [ ORIG_LIBS="$LIBS" for readline_lib in readline edit editline; do for termcap_lib in "" termcap curses ncurses; do if test -z "$termcap_lib"; then TRY_LIB="-l$readline_lib" else TRY_LIB="-l$readline_lib -l$termcap_lib" fi LIBS="$ORIG_LIBS $TRY_LIB" AC_TRY_LINK_FUNC(readline, ac_cv_lib_readline="$TRY_LIB") if test -n "$ac_cv_lib_readline"; then break fi done if test -n "$ac_cv_lib_readline"; then break fi done if test -z "$ac_cv_lib_readline"; then ac_cv_lib_readline="no" fi LIBS="$ORIG_LIBS" ]) if test "$ac_cv_lib_readline" != "no"; then LIBS="$LIBS $ac_cv_lib_readline" AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a readline compatible library]) AC_CHECK_HEADERS(readline.h readline/readline.h) AC_CACHE_CHECK([whether readline supports history], ac_cv_lib_readline_history, [ ac_cv_lib_readline_history="no" AC_TRY_LINK_FUNC(add_history, ac_cv_lib_readline_history="yes") ]) if test "$ac_cv_lib_readline_history" = "yes"; then AC_DEFINE(HAVE_READLINE_HISTORY, 1, [Define if your readline library has \`add_history']) AC_CHECK_HEADERS(history.h readline/history.h) fi fi ]) abook-0.6.1/abookrc.50000644000175000017500000001747412604110363012522 0ustar yugyug.TH ABOOKRC 5 "Oct 25, 2005" .nh .SH NAME \fB$HOME/.abook/abookrc\fP \- configuration file for abook address book program .SH DESCRIPTION This manual page documents briefly the .B abookrc file. .br .B abookrc is the (optional) configuration file for use with the .B abook(1) address book program. .B abookrc is stored in a user's $HOME/.abook directory. It follows a format of \(lq\fBset option=value\fP\(rq. The following information lists each of these options and the values they may take. If a variable is not set in .B abookrc , a sensible default, as listed with the description below, will be used. Comments in .B abookrc are on lines beginning with '#'. .SH COMMANDS .TP \fBset\fP \fIoption\fP = \fIvalue\fP .TP \fBfield\fP \fIidentifier\fP = \fIhuman_readable_name\fP [ , \fItype\fP ] Defines a new custom field. \fItype\fP can be one of 'string' (default) , 'emails', 'list', or 'date'. .TP \fBview\fP \fIview name\fP = \fIfield1\fP [ , \fIfield2\fP, ... ] Defines a view/tab, with \fIfieldN\fP being the identifier of a field declared with the \fBfield\fP command, or the identifier of a standard field. .IP Standard fields: .br name, email, .br address, address2, city, state, zip, country, .br phone, workphone, fax, mobile, .br nick, url, notes, anniversary .IP Note: if you don't define any view, abook will use a default display based on the above standard fields. .SH VARIABLES .TP \fBautosave\fP=[true|false] Defines whether the addressbook is automatically saved on exit. Default is true. .TP \fBpreserve_fields\fP=[all|standard|none] Specifies how fields not declared with the \fBfield\fP command nor in a view should be preserved while loading an abook database. .RS .TP .B all preserve any completely unknown field. .TP .B standard only preserve the standard fields (see a list in the description of the \fBview\fP command) and the legacy 'custom[1\-5]' fields. .TP .B none discards any unknown field. .RE .IP Default is \fIstandard\fP. .TP \fBindex_format\fP=format_string Defines the way entries are displayed in the main list. This is a string containing field names enclosed between braces, with an optional width limit specified by a number (right alignment if negative) after the field name and a colon, and an arbitrary number of alternative fields (first with non empty content is to be displayed) separated by vertical bars. For instance: .RS .TP \fI{name:22}\fP displays the \fIname\fP field with a maximal width of 22 characters. .TP \fI{phone:\-12|workphone|mobile}\fP displays (right aligned within a width of 13 characters), either the \fIphone\fP, \fIworkphone\fP or \fImobile\fP field, whichever being the first to be non\-empty. .RE .IP Default is \fI" {name:22} {email:40} {phone:12|workphone|mobile}"\fP .TP \fBshow_all_emails\fP=[true|false] Defines whether all email addresses for a contact are shown in the main list view. Default is true. .TP .PD 0 \fBemailpos\fP .TP .PD 0 \fBextra_column\fP .TP .PD 0 \fBextra_alternative\fP .TP .PD \fBextrapos\fP Obsoleted by \fBindex_format\fP. .TP \fBmutt_return_all_emails\fP=[true|false] Defines whether to return all email addresses matching the search criteria to a mutt query. Default is true. .TP \fBprint_command\fP=command Defines the command to used when printing the addressbook. Default is "lpr". .TP \fBwww_command\fP=command Defines the command used to start the web browser to view a contact's URL. Default is "lynx". .TP \fBaddress_style\fP=[eu|uk|us] Defines the style of address formatting to be used when exporting as text / printing the database (European, UK, or USA). Default is European ("eu"). .TP \fBuse_ascii_only\fP=[true|false] This option allows you to force Abook use only ASCII characters. This option is useful if your terminal doesn't support non\-ASCII characters. Default is false. .TP \fBadd_email_prevent_duplicates\fP=[true|false] Defines whether to avoid adding addresses already in data. Default is false. .TP \fBsort_field\fP=field Defines the field to be used by the "sort by field" command. Default is "nick" (Nickname/Alias). .TP \fBshow_cursor\fP=[true|false] Defines if the cursor is visible in main display. Default is false. .TP \fBuse_mouse\fP=[true|false] Defines if navigation via the mouse is activated. Default is false. Most terminals can also inhibit ncurses mouse events at runtime by holding the Shift key (restoring mouse\-selection behavior). .TP \fBscroll_speed\fP=lines Defines the number of lines the address list is scrolled by on a mouse wheel action. This option only takes effect if use_mouse is enabled. Default is 2. .TP \fBuse_colors\fP=[true|false] Defines if the output of abook is colorized. Default is false. .TP Color settings: \fBcolor_header_fg\fP=color Foreground color for header bar \fBcolor_header_bg\fP=color Background color for header bar \fBcolor_footer_fg\fP=color Foreground color for footer bar \fBcolor_footer_bg\fP=color Background color for footer bar \fBcolor_list_even_fg\fP=color Foreground color for normal list entries with even index in the list (starting with index 0) \fBcolor_list_even_bg\fP=color Background color for normal list entries with even index in the list (starting with index 0) \fBcolor_list_odd_fg\fP=color Foreground color for normal list entries with odd index in the list (starting with index 0) \fBcolor_list_odd_bg\fP=color Background color for normal list entries with odd index in the list (starting with index 0) \fBcolor_list_header_fg\fP=color Foreground color for the list header \fBcolor_list_header_bg\fP=color Background color for the list header \fBcolor_list_highlight_fg\fP=color Foreground color for highlighted list entries \fBcolor_list_highlight_bg\fP=color Background color for highlighted list entries \fBcolor_tab_border_fg\fP=color Foreground color for tab borders on details page \fBcolor_tab_border_bg\fP=color Background color for tab borders on details page \fBcolor_tab_label_fg\fP=color Foreground color for tab labes on details page \fBcolor_tab_label_bg\fP=color Background color for tab labes on details page \fBcolor_field_name_fg\fP=color Foreground color for field names on details page \fBcolor_field_name_bg\fP=color Background color for field names on details page \fBcolor_field_value_fg\fP=color Foreground color for field values on details page \fBcolor_field_value_bg\fP=color Background color for field values on details page Where \fBcolor\fP can be: default, black, red, green, yellow, blue, magenta, cyan, white .SH SAMPLE CONFIGURATION FILE .nf # sample abook configuration file # # Declare a few custom fields field pager = Pager field address_lines = Address, list field birthday = Birthday, date # Define how fields should be displayed in tabs view CONTACT = name, email view ADDRESS = address_lines, city, state, zip, country view PHONE = phone, workphone, pager, mobile, fax view OTHER = url, birthday # Preserve any unknown field while loading an abook database set preserve_fields=all # Automatically save database on exit set autosave=true # Format of entries lines in list set index_format=" {name:22} {email:40} {phone:12|workphone|mobile}" # Show all email addresses in list set show_all_emails=true # Command used to start mutt set mutt_command=mutt # Return all email addresses to a mutt query set mutt_return_all_emails=true # Command used to print set print_command=lpr # Command used to start the web browser set www_command=lynx # Address style [eu|us|uk] set address_style=eu # Use ASCII characters only set use_ascii_only=false # Prevent double entry set add_email_prevent_duplicates=false # Field to be used with "sort by field" command set sort_field=nick # Show cursor in main display set show_cursor=false .fi .SH SEE ALSO .BR abook (1). .br .SH AUTHORS This manual page was written by Alan Ford and expanded by Cedric Duval . .br .B abook was written by Jaakko Heinonen abook-0.6.1/abook_rl.h0000644000175000017500000000023412604110363012737 0ustar yugyug#ifndef _ABOOK_RL_H #define _ABOOK_RL_H #include "abook_curses.h" char *abook_readline(WINDOW *w, int y, int x, char *s, bool use_completion); #endif abook-0.6.1/abook_rl.c0000644000175000017500000000705612604110363012743 0ustar yugyug/* * $Id$ * * by JH * * Copyright (C) Jaakko Heinonen */ #include #include #include #include "abook.h" #include "abook_rl.h" #ifdef HAVE_CONFIG_H # include "config.h" #endif #if defined(HAVE_READLINE_READLINE_H) # include #elif defined(HAVE_READLINE_H) # include #else # error "You don't seem to have readline.h" # error "No HAVE_READLINE_READLINE_H or HAVE_READLINE_H defined" #endif #if defined(HAVE_READLINE_HISTORY_H) # include #elif defined(HAVE_HISTORY_H) # include #else # error "You don't seem to have history.h" # error "No HAVE_READLINE_HISTORY_H or HAVE_HISTORY_H defined" #endif #ifdef HANDLE_MULTIBYTE # include #endif #define RL_READLINE_NAME "Abook" static int rl_x, rl_y; static WINDOW *rl_win; static bool rl_cancelled; static void rl_refresh() { /* refresh(); */ wrefresh(rl_win); } #ifdef HANDLE_MULTIBYTE static int rline_calc_point() { return (int)mbsnwidth(rl_line_buffer, rl_point, 0); } #endif static void rline_update() { #ifdef HANDLE_MULTIBYTE int real_point = rline_calc_point() + rl_x; #else int real_point = rl_point + rl_x; #endif if(real_point > (COLS - 1)) mvwaddnstr(rl_win, rl_y, rl_x, rl_line_buffer + (1 + real_point - COLS), COLS - rl_x - 1); else mvwaddnstr(rl_win, rl_y, rl_x, rl_line_buffer, rl_end); wclrtoeol(rl_win); wmove(rl_win, rl_y, min(real_point, COLS - 1)); rl_refresh(); } static void rline_compdisp(char **matches, int n, int max_len) { /* dummy */ } static void rline_prep_terminal(int dummy) { #if (RL_VERSION_MAJOR == 4 && RL_VERSION_MINOR > 2) || (RL_VERSION_MAJOR > 4) /* nothing */ #else /* * #warning is an extension. Not all compilers support it. */ # ifdef __GNUC__ # warning "You seem to have rather old readline version or \ non-GNU version of it. If you have problems please use \ GNU readline 4.3 or newer. \ GNU readline versions 4.0, 4.1 and 4.2 should be OK despite \ of this warning." # endif /* * this kludge avoids older readline libraries to print a newline */ extern int readline_echoing_p; readline_echoing_p = 0; #endif raw(); keypad(rl_win, FALSE); } static void rline_deprep_terminal(void) { cbreak(); keypad(rl_win, TRUE); } static int rl_cancel(int dummy1, int dummy2) { rl_cancelled = TRUE; rl_done = 1; return 0; } static void abook_rl_init(bool use_completion) { rl_readline_name = RL_READLINE_NAME; #if RL_VERSION_MAJOR >= 4 rl_already_prompted = 1; #endif rl_catch_sigwinch = 0; rl_erase_empty_line = 0; rl_redisplay_function = rline_update; rl_completion_display_matches_hook = rline_compdisp; rl_prep_term_function = rline_prep_terminal; rl_deprep_term_function = rline_deprep_terminal; rl_unbind_function_in_map(rl_clear_screen, rl_get_keymap()); rl_unbind_function_in_map(rl_reverse_search_history, rl_get_keymap()); rl_unbind_function_in_map(rl_re_read_init_file, rl_get_keymap()); if(use_completion) { rl_bind_key('\t', rl_menu_complete); } else { rl_unbind_function_in_map(rl_complete, rl_get_keymap()); rl_unbind_function_in_map(rl_menu_complete, rl_get_keymap()); } rl_bind_key('g' & 31, rl_cancel); /* C-g */ clear_history(); rl_cancelled = FALSE; } char * abook_readline(WINDOW *w, int y, int x, char *s, bool use_completion) { char *ret; abook_rl_init(use_completion); wmove(rl_win = w, rl_y = y, rl_x = x); rl_refresh(); if(s && *s) add_history(s); ret = readline(NULL); if(rl_cancelled && ret) { free(ret); ret = NULL; } return ret; } abook-0.6.1/abook_curses.h0000644000175000017500000000035412604110363013631 0ustar yugyug#ifndef _ABOOK_CURSES_H #define _ABOOK_CURSES_H #include "config.h" #ifdef HAVE_NCURSES_H # include #else # include #endif #ifndef getnstr # define getnstr(s, n) wgetnstr(stdscr, s, n) #endif #endif abook-0.6.1/abook.spec.in0000644000175000017500000000164512604110363013361 0ustar yugyugSummary: Text-based addressbook program Name: @PACKAGE@ Version: @VERSION@ Release: 1 License: GPL Group: Utilities Source: http://prdownloads.sourceforge.net/abook/%{name}-%{version}.tar.gz URL: http://abook.sourceforge.net/ BuildPreReq: ncurses-devel readline-devel gettext BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description Abook is a text-based addressbook program designed to use with mutt mail client. %prep %setup -q %build %configure make %{_smp_mflags} %install %makeinstall %find_lang %{name} %clean rm -rf -- "%{buildroot}" %files -f %{name}.lang %defattr(-,root,root) %doc AUTHORS BUGS COPYING ChangeLog FAQ NEWS README THANKS TODO sample.abookrc %{_bindir}/abook %{_mandir}/man1/abook.* %{_mandir}/man5/abookrc.* %changelog * Mon Mar 11 2002 Jaakko Heinonen - rewrote the spec file originally written by Gustavo Niemeyer abook-0.6.1/abook.h0000644000175000017500000000231112604110363012240 0ustar yugyug#ifndef _ABOOK_H #define _ABOOK_H #include FILE *abook_fopen (const char *path, const char *mode); void quit_abook(int save_db); void launch_wwwbrowser(int item); void launch_mutt(int item); void print_stderr(int item); #ifdef _AIX int strcasecmp (const char *, const char *); int strncasecmp (const char *, const char *, size_t); #endif #define MAIN_HELPLINE N_("q:quit ?:help a:add r:remove") #define Y_STATUSLINE (LINES - 2) #define MIN_LINES 20 #define MIN_COLS 70 #define DEFAULT_UMASK 066 #define DIR_IN_HOME ".abook" #define DATAFILE "addressbook" #define RCFILE "abookrc" #define QUIT_SAVE 1 #define QUIT_DONTSAVE 0 /* * some "abookwide" useful macros */ #define hide_cursor() curs_set(0) #define show_cursor() curs_set(1) #define safe_atoi(X) ((X == NULL) ? 0 : atoi(X)) #define safe_str(X) ((X == NULL) ? "" : X) #ifndef min # define min(x,y) (((x)<(y)) ? (x):(y)) #endif #ifndef max # define max(x,y) (((x)>(y)) ? (x):(y)) #endif #define ISSPACE(c) isspace((unsigned char)c) #define SKIPWS(c) while(*(c) && ISSPACE(*(c))) c++ #define SKIPNONWS(c) while(*(c) && ! ISSPACE(*(c))) c++ #ifndef DEBUG # define NDEBUG 1 #else # undef NDEBUG #endif #endif abook-0.6.1/abook.10000644000175000017500000000673312604110363012165 0ustar yugyug.TH ABOOK 1 2006-09-06 .nh .SH NAME abook \- text\-based address book program .SH SYNOPSIS .B abook [ \fIOPTION\fR ] .SH DESCRIPTION This manual page documents briefly the .B abook program. This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page. .PP .B abook is a text-based address book program. It contains Name, Email, Address and various Phone fields. It is designed for use with mutt, but can be equally useful on its own. .SH OPTIONS .TP \fB\-h \-\-help\fP Show usage. .TP \fB\-C \-\-config\fP \fI\fR Use an alternative configuration file (default is \fI$HOME/.abook/abookrc\fR). .TP \fB\-\-datafile\fP \fI\fR Use an alternative addressbook file (default is \fI$HOME/.abook/addressbook\fR). .TP \fB\-\-mutt\-query\fP \fI\fR [ \fB\-\-outformat\fP \fI\fR ] Make a query for mutt (search the addressbook for \fI\fR). .br The \fB\-\-datafile\fP option, as documented above, may be used .BI BEFORE this option to search a different addressbook file. .br Only a subset of the below \fI\fR are allowed: \fBmutt\fP (default), \fBvcard\fP and \fBcustom\fP .TP \fB\-\-convert\fP [ \fB\-\-informat\fP \fI\fR ] [ \fB\-\-infile\fP \fI\fR ] [ \fB\-\-outformat\fP \fI\fR ] [ \fB\-\-outfile\fP \fI\fR ] Converts \fI\fR in \fI\fR to \fI\fR in \fI\fR (defaults are \fBabook\fP, \fBstdin\fP, \fBtext\fP and \fBstdout\fP). .br The following \fIinputformats\fR are supported: .br \- \fBabook\fP abook native format .br \- \fBldif\fP ldif / Netscape addressbook .br \- \fBmutt\fP mutt alias .br \- \fBpine\fP pine addressbook .br \- \fBcsv\fP comma separated values .br \- \fBpalmcsv\fP Palm comma separated values .br \- \fBvcard\fP VCard addressbook .br The following \fIoutputformats\fR are supported: .br \- \fBabook\fP abook native format .br \- \fBldif\fP ldif / Netscape addressbook (.4ld) .br \- \fBmutt\fP mutt alias .br \- \fBhtml\fP html document .br \- \fBpine\fP pine addressbook .br \- \fBvcard\fP VCard addressbook .br \- \fBcsv\fP comma separated values .br \- \fBpalmcsv\fP Palm comma separated values .br \- \fBelm\fP elm alias .br \- \fBtext\fP plain text .br \- \fBspruce\fP Spruce address book .br \- \fBwl\fP Wanderlust address book .br \- \fBbsdcal\fP BSD calendar .br \- \fBcustom\fP Custom output format, see below .TP \fB\-\-outformatstr\fP \fI\fR Only used if \fB\-\-mutt\-query\fP \fIor\fR \fB\-\-convert\fP is specified \fIand\fR \fB\-\-outformat\fP=\fIcustom\fR. \fI\fR is a format string allowing placeholders. .br A placeholder can be any of the standard fields names (see \fBabookrc\fP(5)) and must be encapsulated by curly brackets. .br The default value is "{nick} ({name}): {mobile}" .br If \fI\fR starts with \fI!\fR only entries whose all fields from \fI\fR are non\-NULL are included. .TP \fB\-\-add\-email\fP Read an e\-mail message from stdin and add the sender to the addressbook. .TP \fB\-\-add\-email\-quiet\fP Same as \-\-add\-email but doesn't confirm adding. .TP \fB\-\-formats\fP List available formats. .SH COMMANDS DURING USE Press '\fB?\fP' during use to get a list of commands. .SH SEE ALSO .BR mutt (1), .BR abookrc (5) .br .SH AUTHOR This manual page was written by Alan Ford , for the Debian GNU/Linux system (but may be used by others). .br .B abook was written by Jaakko Heinonen abook-0.6.1/TODO0000644000175000017500000000011412604110363011463 0ustar yugyuggeneric: - grouping - new file format (xml?) - custom views, keybindings abook-0.6.1/THANKS0000644000175000017500000000055012604110363011712 0ustar yugyugabook THANKS ------------ Michael Wiedmann Brian Salter-Duke An Thi-Nguyen Le Reinhard J Sammer Matt Anderson R. Shohn Trojacek Shao Zhang Gustavo Niemeyer Brian Medley Takahashi Tamotsu Liam K Morland Cheryl Homiak Christoph Sobotka Morten Brix Pedersen Jeff Covey Giuseppe Corbelli Mariusz Balewski Marc Tardif Gerfried Fuchs Josef Schugt See also AUTHORS abook-0.6.1/RELEASE_NOTES0000644000175000017500000000527512604110363012763 0ustar yugyugThis file lists major changes affecting abook's behavior. Please read this file carefully when upgrading abook. A more comprehensive list of changes can be found in the ChangeLog file. -- Git: 0.6.1 (2015-08-11): * support for mouse * scrolling now affects the viewport instead of the cursor * support for a colored UI * added "groups" as a default field * the UI now supports merging selected entries [key M] and removing duplicates [key U] * a "custom" output filter allows the specification of an output format using placeholders * search-next is now bound to "/" too * some output filters can now be used in the context of --mutt-query. This is the case of "vcard" and "custom" [ no --query option has been created and --mutt-query is fully backward compatible ] * ldif output filter has been fixed [output modified] in multiple ways, does not force output to latin1 anymore and supports input from stdin. * vcard input/output support: An original input filter implementation was provided soon after 0.6.0pre2. In 2012, an optional build-time option to link against libvformat was added for the very same task: parsing vcard. - It depends on the --enable-vformat ./configure switch - It's only used as an input filter, especially useful to deal with multi-valued fields and encoded characters. * when the UI requests a confirmation from the user before a destructive operation it does not treat unknown key as "yes" anymore. * allcsv output changes: - header line uses lowercase - "MOBILEPHONE" column name changed to "mobile" (consistent w.r.t. standard_fields) - defined custom fields as well are part of the output now 0.6.0pre2 (2010-07-22): * Added anniversary as a default field * Display dates according to current locale * The four following configuration options have been deprecated and will no longer be accepted by abook: * emailpos * extra_column * extra_alternative * extrapos They have been replaced with a single more flexible option: index_format. This option is a string defining the format of a line in the main list. It allows displaying of as many fields as desired, with optional width limit, as well as an arbitrary number of alternative fields. 0.6.0pre1 (2006-08-30): * The 'customfield' command has been obsoleted by a more flexible set of commands: 'field' and 'view'. Those two commands make it possible to define fields and organize them within tabs as you see fit. Not using these commands, the look and feel of previous releases will mostly be kept the same. Also see the related 'preserve_fields' configuration variable. abook-0.6.1/README0000644000175000017500000000466512604110363011672 0ustar yugyug ABOOK by JH ----- Abook is an addressbook program with mutt mail client support. COMPILATION To compile abook you must have ncurses development libraries installed. Starting from version 0.4.10 abook is known to compile with the native curses library of SUN Solaris and OpenBSD. Since version 0.5.0 GNU readline is required. Please note that other readline implementations don't work. If you compile with --enable-debug flag you should redirect standard error to somewhere. (for example abook 2> debug or abook 2> /dev/null) Abook has been compiled and tested successfully on following platforms: (NOTE: All versions of abook haven't been tested on all platforms.) Linux (distributions with moderately new GNU ncurses and GNU readline libraries should work) Darwin Solaris FreeBSD OpenBSD NetBSD GNU/Hurd AIX 3.2.5 HPUX Irix 6.5 DEC alpha ? INSTALLATION See INSTALL for detailed instructions. If you want to use abook with mutt you should add following lines to your ~/.muttrc or to the systemwide /etc/Muttrc file. set query_command="abook --mutt-query '%s'" macro pager A |'abook --add-email'\n After this you can make queries from mutt using the query command ('Q') and add sender e-mail addresses to the addressbook from pager using 'A' command. (Of course you can choose another keybinding if you like.) It's also recommended to set pipe_decode variable in mutt configuration. See the mutt manual for details. Abook can also convert from/to mutt alias files and a number of other formats. Mutt groups are fully supported. UPGRADING FROM VERSION 0.5 See RELEASE_NOTES . UPGRADING FROM VERSION 0.4 You must import your abook 0.4 addressbook file because it is stored to a different location. Configuration file is now located to $HOME/.abook/ directory and it's called abookrc . (without leading dot) NOTES If your language specific characters don't work correctly make sure that your locale configuration has been done properly. (On Linux you must set at least LC_CTYPE environment variable) If you want to import a ldif file generated by abook in Netscape you must use the extension ``.4ld''. OBTAINING ABOOK Get the latest version from http://abook.sourceforge.net/ LICENSE All files in this distribution are released under GNU GENERAL PUBLIC LICENSE. See COPYING for details. CONTACT AUTHORS Send bugreports, fixes, wishes etc. to abook mailing list: https://lists.sourceforge.net/lists/listinfo/abook-devel abook-0.6.1/NEWS0000644000175000017500000000001612604110363011473 0ustar yugyugSee ChangeLog abook-0.6.1/Makefile.in0000644000175000017500000007706512604110363013063 0ustar yugyug# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = abook$(EXEEXT) subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in mkinstalldirs $(srcdir)/abook.spec.in \ ABOUT-NLS depcomp COPYING THANKS TODO compile config.guess \ config.rpath config.sub install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = abook.spec CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__abook_SOURCES_DIST = abook.c abook_rl.c database.c edit.c filter.c \ getname.c getopt.c getopt1.c gettext.c ldif.c list.c \ mbswidth.c misc.c options.c ui.c views.c xmalloc.c abook.h \ abook_curses.h abook_rl.h database.h edit.h filter.h getname.h \ getopt.h gettext.h help.h list.h ldif.h mbswidth.h misc.h \ options.h ui.h views.h xmalloc.h vcard.c vcard.h @ENABLE_VFORMAT_SUPPORT_TRUE@am__objects_1 = vcard.$(OBJEXT) am_abook_OBJECTS = abook.$(OBJEXT) abook_rl.$(OBJEXT) \ database.$(OBJEXT) edit.$(OBJEXT) filter.$(OBJEXT) \ getname.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \ gettext.$(OBJEXT) ldif.$(OBJEXT) list.$(OBJEXT) \ mbswidth.$(OBJEXT) misc.$(OBJEXT) options.$(OBJEXT) \ ui.$(OBJEXT) views.$(OBJEXT) xmalloc.$(OBJEXT) \ $(am__objects_1) abook_OBJECTS = $(am_abook_OBJECTS) abook_DEPENDENCIES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(abook_SOURCES) DIST_SOURCES = $(am__abook_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @ENABLE_VFORMAT_SUPPORT_FALSE@vformat_SOURCE = @ENABLE_VFORMAT_SUPPORT_TRUE@vformat_SOURCE = vcard.c vcard.h @ENABLE_VFORMAT_SUPPORT_TRUE@AM_LDFLAGS = -lvformat abook_SOURCES = abook.c abook_rl.c database.c edit.c \ filter.c getname.c getopt.c getopt1.c gettext.c \ ldif.c list.c mbswidth.c misc.c options.c \ ui.c views.c xmalloc.c \ \ abook.h abook_curses.h abook_rl.h database.h edit.h \ filter.h getname.h getopt.h gettext.h \ help.h list.h ldif.h mbswidth.h misc.h options.h \ ui.h views.h xmalloc.h \ $(vformat_SOURCE) EXTRA_DIST = config.rpath ANNOUNCE BUGS FAQ abook.1 abookrc.5 sample.abookrc \ abook.spec contrib doc/HOWTO.translating_abook RELEASE_NOTES abook_LDADD = @LIBINTL@ SUBDIRS = po ACLOCAL_AMFLAGS = -I m4 @USE_INCLUDED_INTL_H_TRUE@AM_CPPFLAGS = -Iintl all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 abook.spec: $(top_builddir)/config.status $(srcdir)/abook.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) abook$(EXEEXT): $(abook_OBJECTS) $(abook_DEPENDENCIES) $(EXTRA_abook_DEPENDENCIES) @rm -f abook$(EXEEXT) $(AM_V_CCLD)$(LINK) $(abook_OBJECTS) $(abook_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/abook.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/abook_rl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/database.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbswidth.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vcard.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/views.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-local .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-binPROGRAMS \ clean-cscope clean-generic cscope cscopelist-am ctags ctags-am \ dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-compile distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-local install-data-local: $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(INSTALL_DATA) $(srcdir)/abook.1 $(DESTDIR)$(mandir)/man1/ $(INSTALL_DATA) $(srcdir)/abookrc.5 $(DESTDIR)$(mandir)/man5/ uninstall-local: -rm -f $(DESTDIR)$(mandir)/man1/abook.1 -rm -f $(DESTDIR)$(mandir)/man5/abookrc.5 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: abook-0.6.1/Makefile.am0000644000175000017500000000210412604110363013030 0ustar yugyug bin_PROGRAMS = abook if ENABLE_VFORMAT_SUPPORT vformat_SOURCE = vcard.c vcard.h AM_LDFLAGS = -lvformat else vformat_SOURCE = endif abook_SOURCES = abook.c abook_rl.c database.c edit.c \ filter.c getname.c getopt.c getopt1.c gettext.c \ ldif.c list.c mbswidth.c misc.c options.c \ ui.c views.c xmalloc.c \ \ abook.h abook_curses.h abook_rl.h database.h edit.h \ filter.h getname.h getopt.h gettext.h \ help.h list.h ldif.h mbswidth.h misc.h options.h \ ui.h views.h xmalloc.h \ $(vformat_SOURCE) EXTRA_DIST = config.rpath ANNOUNCE BUGS FAQ abook.1 abookrc.5 sample.abookrc \ abook.spec contrib doc/HOWTO.translating_abook RELEASE_NOTES abook_LDADD = @LIBINTL@ install-data-local: $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(INSTALL_DATA) $(srcdir)/abook.1 $(DESTDIR)$(mandir)/man1/ $(INSTALL_DATA) $(srcdir)/abookrc.5 $(DESTDIR)$(mandir)/man5/ uninstall-local: -rm -f $(DESTDIR)$(mandir)/man1/abook.1 -rm -f $(DESTDIR)$(mandir)/man5/abookrc.5 SUBDIRS = po ACLOCAL_AMFLAGS = -I m4 if USE_INCLUDED_INTL_H AM_CPPFLAGS = -Iintl endif abook-0.6.1/INSTALL0000644000175000017500000003660512604110363012042 0ustar yugyugInstallation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. abook-0.6.1/FAQ0000644000175000017500000000464612604110363011343 0ustar yugyugabook FAQ ~~~~~~~~~ Q: Can I recall the old value in editor? A: Yes, use up arrow to recall the old value. Q: How to query all addresses when I press 'Q' in mutt? A: Type "all" to the prompt. Q: Can I mark multiple addresses in mutt after a query? A: You can tag addresses with 't'. When ready, type ";m" (press first ';' and then 'm') and all tagged addresses will appear to your "To:" line. Q: How to insert an address (or many) with abook when I'm forwarding a message in mutt? ("To:" and "Cc:" prompts) A: When "To:" or "Cc:" prompt appears press ^t for query. (After query you can tag multiple addresses with 't') Q: Can I add addresses to the abook addressbook from mutt? A: Yes, it is possible starting from abook version 0.4.15. See --add-email command line option and README. Q: How can I import my abook entries to my PalmOS addressbook? A: Export to palmcsv format, and import from there. Several GUI applications such as jpilot can do this, but the simplest way is to use pilot-addresses from the pilot-link package. Just export to addresses.palmcsv, then run this: pilot-addresses -d abook -c abook -r addresses.palmcsv This will delete everything in the abook category and replace it with the latest information from your abook database. By keeping your abook entries in a separate category, you can continue to add and modify entries in other categories manually, and pilot-addresses will not change or delete them. (This entry was contributed by Jeff Covey) Q: Can I use abook in UTF-8 terminal emulator? A: Yes, the version 0.5.2 added a multibyte character support. There are currently some issues: - Addressbook files must have the same encoding as you use with abook. If you have used abook previously with ISO-8859-1 encoding you can convert the addressbook files with iconv(1). For example: $ iconv -f ISO-8859-1 -t UTF-8 < ~/.abook/addressbook.old > \ ~/.abook/addressbook.new - Filters will output strings using multibyte representation of the used locale. This is incorrect for (most of) filters. You can again use iconv to convert between encodings. Same goes with input filters. If you use UTF-8 charset the input is expected to be UTF-8 encoded. last update: $Date$ abook-0.6.1/ChangeLog0000644000175000017500000002064512604110363012560 0ustar yugyuggit - 0.6.1 - custom output format (Raphaël Droz) - remove duplicates (Fabio Zanini) - merge entries (Fabio Zanini) - mutt groups support (Fabio Zanini) - vcard initial input filter (Michael Krolikowski) - vcard parser improvements (Fabio Zanini, Raphaël Droz) - color support (Thorsten Wißmann) - mouse support (Thorsten Wißmann) - extra-fields deletion bugfix (Jorrit Tijben) - additional keybindings (Hagen Fuchs) - autotools update (Fabio Zanini) - case-sensitive ldif fields parsing (Christian Brabandt) - ldif standard input support (Raphaël Droz) - ldif extensible field management rewrite (Raphaël Droz) - html output fixes (Stéphane Aulery) - memory bugfixes (Peter Wu) - vcard birthday export fix (Gaetan Bisson) 0.6.0 - configurable views (Cedric Duval) - new field types, lists and improved custom field support (Cedric Duval) - index_format option (Cedric Duval) - Italian translation (Claudio Stazzone) 0.5.6 - translation fixes - fixed gcrd export format (\r\n line endings according to RFC, Marc Tardif) - fix localized keybindings with --disable-nls 0.5.5 - fixed gcrd export format (Marc Tardif) - i18n support (Cedric Duval) - French translation (Cedric Duval) - Swedish translation (Susanna Björverud) - Japanese translation (Takahashi Tamotsu) - German translation (Johannes Weißl) - palmcsv import filter (Marc Tardif) - use better common code for csv filters (Marc Tardif) - translation HOWTO (Cedric Duval) - wanderlust export filter (Josef Schugt) - create a backup at save time - editor undo fix - ui_readline limit fix 0.5.4 - add show_cursor config option (idea from Cheryl Homiak) - autoconf/automake update - replace abook_malloc, abook_realloc and my_free with new xmalloc routines - replace strdup with xstrdup - update for abook_rl (abook_readline) - make it compile with tcc (Tiny C Compiler) - code cleanups and minor fixes 0.5.3 - add allcvs filters (Christoph Sobotka) - removed a lefover debug message - fixed mutt import filter nickname cutoff - wrap searches - contrib updates 0.5.2 - five custom fields added - experimental wide character support - fixed a crash bug in mutt filter - fixed errors in configure.in (especially snprintf-functions were incorrectly detected) - abookrc manual page update 0.5.1 - sort by field command - duplicate item command - quit without saving command - autoconf/automake update - minor filter fixes - tried to fix \" quotation problem with mutt import filter - removed obsolete filesel_sort option from abookrc manual page - added bbdb2xx translator source to contrib 0.5.0 - tried to work around some problems with readline - some documentation update 20030530 - updated autoconf/automake - updated man page - pine import filter update 20021008 - options.c rewritten (new mutt style rc file support) - palmcsv export filter (Koenraad Heijlen) - added a spec file for rpm support - added --with-readline configure option - merged newtab patch by Sinan Kaan Yerli - new option: add_email_prevent_duplicates - bugfixes 2002-03-11 - readline support - abook can be compiled with g++ - attempt to improve --datafile behavior - html filter update (Morten Brix Pedersen) - store rcfile and addressbook to .abook directory 2002-02-04 - use getopt to parse command line (also new options added) - use strcoll instead of strcmp for sorting entries - html filter fix - bugfixes 0.4.17 - fixed an annoying file creation bug 0.4.16 - use strcoll instead of strcmp for sorting entries - html filter fix - many bugfixes 0.4.15 - new options --add-email and --add-email-quiet - proper mutt alias import filter - editor update - don't handle extra_column and extra_alternative as numbers in abookrc - added second address field - mail.vim update in contrib directory 0.4.14 - added csv import filter - csv export filter fix - minor html filter update - fixed a minor memory leak in pine import filter - filter cleanups - fixes - "quit and print selected item(s) to stderr" command (Brian Medley) - contrib update 0.4.13 - major code reorganization (phase 1) - fixed help viewer functions - ability to disable use of non-ascii characters (configuration option) - changed SIGINT behaviour - html export filter creates now valid html documents - ability to print/export only selected items - new editor commands - text filter update - query/find code cleanup - fixed snprintf related bugs - minor bugfixes 0.4.12 - added man page for abookrc (Alan Ford) - notes are returned as optional data in mutt queries - created a workaround for a mutt query bug - new "extra_alternative" config option (Alan) - added undo feature to editor - FAQ - macro updates - fixed the cancel key behavior in editor 0.4.11 - new configuration file format - new sorting routines - minor mutt query patch (Matt) - html filter update - added mail2abook.py script to improve the mutt integration - memory allocation changes - contrib update 0.4.10 - mutt alias import filter - --datafile option should work better now - merged HPUX patch (submitted by Matt Kraai) - added field for nickname/alias - bugfixes 0.4.9 - increased the maximum length of an e-mail address - added Spruce and ldif export filters - text filter update - added support for systemwide configuration file (/etc/abook.conf) - list.c cleanup - minor fixes 0.4.8 - new enter_string function (scrollable input) - fileselector - new fields for phone numbers - extra field support - added open database command and --datafile option 0.4.7 - fixed terminal resizing bug - new man page - fixed "roll emails" bug - merged Alan's urlview patch - fixed some compile warnings on some systems 0.4.6 - new proper ldif import filter - printing - GnomeCard export filter - improved ui - csv export filter - elm alias export filter - plain text export filter - improved import / export system - a man page (contributed by Alan Ford) - some fixes 0.4.5 - new command line option --convert to make format conversions - new common functions for filters - mutt alias export filter - minor filter updates - fixed a compile problem in list.c 0.4.4 - fixed a serious segfault bug in editor - conff.c update 0.4.3 - improved "send mail with mutt" command - optimized screen refreshing - abook handles now SIGINT, SIGKILL, SIGTERM signals 0.4.2 - new editor - added fields for address (address, city, state, zip, country) - terminal resizing is now handled by abook - improved scrolling - bugfixes - dropped support for abook 0.1 / 0.2 file format 0.4.1 - fixed a redraw bug in editor which occurred only with old ncurses library - minor updates 0.4.0 - PINE addressbook import and export filters added - new faster load and save functions - changed memory allocation method - better configuration system - options.c rewritten - new version of conff.c - find segfault bug fixed - fixed overwriting policy 0.3.1 - fixed a bug which caused list to disappear sometimes after removing items - minor changes in datafile loader - abook.gz import filter is now disabled as default 0.3.0 - new portable file format - import filter for old data format - now compiles on FreeBSD - new "send mail with mutt" command - multiple e-mail address support - html export filter - improved cursor behavior - fixed misc.c - new configuration system ( ~/.abook.conf ) - improved memory allocation functions - added invert selection command - minor filter updates 0.2.4 - minor memory freeing fix 0.2.3 - major memory allocation bugfix 0.2.2 - bugfixes 0.2.1 - abook finaly uses automake/autoconf setup - documentation updated - minor changes 0.2.0 - multiple selection - added find function - ldif import filter update (still some bugs?) - added check for terminal size - removed obsolete rcfile code - some changes in list.c - new file: help.h - Makefiles modified - complete rewrote of misc.c - fixed a bug in mutt query - changed first_item to first_list_item and LAST_ITEM to LAST_LIST_ITEM - lots of minor improvements - documentation updated (it's still very bad) 0.1.0 - removed dummy defaultrc.h file - README and COPYING - minor ldif import filter update - minor changes and fixes 0.1.0-pre-release 2 - locale support - mutt query now ignores case - rcfile support is compiled only if -DEXPERIMENTAL option is selected (see Makefile) because the rcfile support is very poor and should be rewritten for 0.2 or something - new file: defaultrc.h 0.1.0-pre-release 1 abook-0.6.1/COPYING0000644000175000017500000004310512604110363012035 0ustar yugyug GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. abook-0.6.1/BUGS0000644000175000017500000000306012604110363011461 0ustar yugyugknown bugs in abook * with certain terminals keyboard may not behave as expected - this is probably a ncurses problem * incompatible with some terminals - there seems to be problems with some (old?) gnome-terminal versions - gnome-terminal bug? * some keys may cause readline to crash - this is a readline (4.3) problem - there is a fix available for readline: ftp://ftp.gnu.org/gnu/readline/readline-4.3-patches/readline43-001 * cursor disappears in some cases with abook_readline() on Solaris. If you have problems it is recommended to use the GNU ncurses library * terminal state is not restored correctly on exit with certain ncurses and readline combination (more information is needed on this) * file format is not tolerant for character set changes * datafile is always removed and rewritten from scratch (symlinks don't work, timestamp is always updated, comments are removed) * comma (,) is not allowed in lists and is converted to _ -- [25] name=Lastname, Firstname email="Lastname, Firstname" but the command "abook --mutt-query lastname" returns two email addresses "Lastname Lastname, Firstname Firstname" Lastname, Firstname In other words, the mutt-query doesn't treat the comma as protected by the quotes, although the conversion from pine format did. -- Filters: * mutt / elm / pine export filters allow to create a file with duplicate aliases * mutt import filter imports only first e-mail address * fseek in ldif import filter should be eliminated $Id$ abook-0.6.1/AUTHORS0000644000175000017500000000163512604110363012054 0ustar yugyugabook AUTHORS ------------- Jaakko Heinonen Cedric Duval - views - i18n - etc. Alan Ford - Debian package - manual pages - GnomeCard, csv, text, elm export filters - etc. Josua Groeger - spruce export filter - text export filter update Matt Kraai - patches Koenraad Heijlen - csv import filter - palmcsv export filter - fixes Michael Krolikowski - built-in vcard import filter Raphaël Droz - custom output format - reworked ldif input/output - vcard import filter through libvformat - fixes Thorsten Wißmann - color support - mouse support Fabio Zanini - merge entries - duplicated entries removal - mutt "groups" - fixes abook-0.6.1/ANNOUNCE0000644000175000017500000000042012604110363012124 0ustar yugyugabook Abook is small and powerful addressbook program designed to use with mutt mail client. Abook runs on Linux / FreeBSD and probably with small changes on other unices. Ncurses library is required to compile abook. Abook is available at http://abook.sourceforge.net/ abook-0.6.1/ABOUT-NLS0000644000175000017500000026713312604110363012242 0ustar yugyug1 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. 1.1 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. Installers may use special options at configuration time for changing the default behaviour. The command: ./configure --disable-nls will _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl' library and will decide to use it. If not, you may have to to use the `--with-libintl-prefix' option to tell `configure' where to look for it. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.2 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.3 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.4 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of June 2010. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca +--------------------------------------------------+ a2ps | [] [] | aegis | | ant-phone | | anubis | | aspell | [] [] | bash | | bfd | | bibshelf | [] | binutils | | bison | | bison-runtime | [] | bluez-pin | [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] [] | cpio | | cppi | | cpplib | [] | cryptsetup | | dfarc | | dialog | [] [] | dico | | diffutils | [] | dink | | doodle | | e2fsprogs | [] | enscript | [] | exif | | fetchmail | [] | findutils | [] | flex | [] | freedink | | gas | | gawk | [] [] | gcal | [] | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] [] | gettext-tools | [] [] | gip | [] | gjay | | gliv | [] | glunarclock | [] [] | gnubiff | | gnucash | [] | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | | gold | | gpe-aerial | | gpe-beam | | gpe-bluetooth | | gpe-calendar | | gpe-clock | [] | gpe-conf | | gpe-contacts | | gpe-edit | | gpe-filemanager | | gpe-go | | gpe-login | | gpe-ownerinfo | [] | gpe-package | | gpe-sketchbook | | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] | gpe-today | [] | gpe-todo | | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | [] [] | gsasl | | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] [] [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] [] | gutenprint | | hello | [] | help2man | | hylafax | | idutils | | indent | [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | | iso_639 | [] [] [] [] | iso_639_3 | | jwhois | | kbd | | keytouch | [] | keytouch-editor | | keytouch-keyboa... | [] | klavaro | [] | latrine | | ld | [] | leafpad | [] [] | libc | [] [] | libexif | () | libextractor | | libgnutls | | libgpewidget | | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | [] | libidn | | lifelines | | liferea | [] [] | lilypond | | linkdr | [] | lordsawar | | lprng | | lynx | [] | m4 | | mailfromd | | mailutils | | make | | man-db | | man-db-manpages | | minicom | | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | | psmisc | | pspp | [] | pwdutils | | radius | [] | recode | [] [] | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] [] | sed | [] [] | sharutils | [] [] | shishi | | skencil | | solfege | | solfege-manual | | soundtracker | | sp | | sysstat | | tar | [] | texinfo | | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] [] | wyslij-po | | xchat | [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] | +--------------------------------------------------+ af am an ar as ast az be be@latin bg bn_IN bs ca 6 0 1 2 3 19 1 10 3 28 3 1 38 crh cs da de el en en_GB en_ZA eo es et eu fa +-------------------------------------------------+ a2ps | [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] () | anubis | [] [] | aspell | [] [] [] [] [] | bash | [] [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] | bison | [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] [] [] | cflow | [] [] | clisp | [] [] [] [] | coreutils | [] [] [] [] | cpio | | cppi | | cpplib | [] [] [] | cryptsetup | [] | dfarc | [] [] [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] | dink | [] [] [] | doodle | [] | e2fsprogs | [] [] [] | enscript | [] [] [] | exif | () [] [] | fetchmail | [] [] () [] [] [] | findutils | [] [] [] | flex | [] [] | freedink | [] [] [] | gas | [] | gawk | [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] [] [] | gip | [] [] [] [] | gjay | [] | gliv | [] [] [] | glunarclock | [] [] | gnubiff | () | gnucash | [] () () () () | gnuedu | [] [] | gnulib | [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] | gpe-aerial | [] [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] [] [] | gpe-edit | [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] () [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] | grub | [] [] | gsasl | [] | gss | | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] () [] | gtkam | [] [] () [] [] | gtkorphan | [] [] [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] [] [] | hello | [] [] [] [] | help2man | [] | hylafax | [] [] | idutils | [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] [] [] [] () [] [] [] () | iso_3166_2 | () | iso_4217 | [] [] [] () [] [] | iso_639 | [] [] [] [] () [] [] | iso_639_3 | [] | jwhois | [] | kbd | [] [] [] [] [] | keytouch | [] [] | keytouch-editor | [] [] | keytouch-keyboa... | [] | klavaro | [] [] [] [] | latrine | [] () | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | [] [] | libgphoto2 | [] () | libgphoto2_port | [] () [] | libgsasl | | libiconv | [] [] [] [] [] | libidn | [] [] [] | lifelines | [] () | liferea | [] [] [] [] [] | lilypond | [] [] [] | linkdr | [] [] [] | lordsawar | [] | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] [] | man-db | | man-db-manpages | | minicom | [] [] [] [] | mkisofs | | myserver | | nano | [] [] [] | opcodes | [] [] | parted | [] [] | pies | | popt | [] [] [] [] [] | psmisc | [] [] [] | pspp | [] | pwdutils | [] | radius | [] | recode | [] [] [] [] [] [] | rosegarden | () () () | rpm | [] [] [] | rush | | sarg | | screem | | scrollkeeper | [] [] [] [] [] | sed | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | | skencil | [] () [] | solfege | [] [] [] | solfege-manual | [] [] | soundtracker | [] [] [] | sp | [] | sysstat | [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] | tin | [] [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] | vice | () () | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] | wyslij-po | | xchat | [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] | +-------------------------------------------------+ crh cs da de el en en_GB en_ZA eo es et eu fa 5 64 105 117 18 1 8 0 28 89 18 19 0 fi fr ga gl gu he hi hr hu hy id is it ja ka kn +----------------------------------------------------+ a2ps | [] [] [] [] | aegis | [] [] | ant-phone | [] [] | anubis | [] [] [] [] | aspell | [] [] [] [] | bash | [] [] [] [] | bfd | [] [] [] | bibshelf | [] [] [] [] [] | binutils | [] [] [] | bison | [] [] [] [] | bison-runtime | [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] | cflow | [] [] [] | clisp | [] | coreutils | [] [] [] [] [] | cpio | [] [] [] [] | cppi | [] [] | cpplib | [] [] [] | cryptsetup | [] [] [] | dfarc | [] [] [] | dialog | [] [] [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] [] [] [] | dink | [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] | freedink | [] [] [] | gas | [] [] | gawk | [] [] [] [] () [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] [] [] | gjay | [] | gliv | [] () | glunarclock | [] [] [] [] | gnubiff | () [] () | gnucash | () () () () () [] | gnuedu | [] [] | gnulib | [] [] [] [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] [] | gpe-aerial | [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] [] [] | gpe-calendar | [] [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] [] | gpe-go | [] [] [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] [] | grub | [] [] [] [] | gsasl | [] [] [] [] [] | gss | [] [] [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] [] | gtkorphan | [] [] [] | gtkspell | [] [] [] [] [] [] [] [] [] | gutenprint | [] [] [] [] | hello | [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | () [] [] [] | iso_4217 | [] () [] [] [] [] | iso_639 | [] () [] [] [] [] [] [] [] | iso_639_3 | () [] [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] [] [] [] | keytouch-editor | [] [] [] [] [] | keytouch-keyboa... | [] [] [] [] [] | klavaro | [] [] | latrine | [] [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] [] () | libc | [] [] [] [] [] | libexif | [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] [] | libidn | [] [] [] [] | lifelines | () | liferea | [] [] [] [] | lilypond | [] [] | linkdr | [] [] [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] [] [] | m4 | [] [] [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] [] | man-db | [] [] | man-db-manpages | [] | minicom | [] [] [] [] [] | mkisofs | [] [] [] [] | myserver | | nano | [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pies | | popt | [] [] [] [] [] [] [] [] [] | psmisc | [] [] [] | pspp | | pwdutils | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () () () () | rpm | [] [] | rush | | sarg | [] | screem | [] [] | scrollkeeper | [] [] [] [] | sed | [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] | shishi | [] | skencil | [] | solfege | [] [] [] [] | solfege-manual | [] [] | soundtracker | [] [] | sp | [] () | sysstat | [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux-ng | [] [] [] [] [] [] | vice | () () () | vmm | [] | vorbis-tools | [] | wastesedge | () () | wdiff | [] | wget | [] [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] | +----------------------------------------------------+ fi fr ga gl gu he hi hr hu hy id is it ja ka kn 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne +-----------------------------------------------+ a2ps | [] | aegis | | ant-phone | | anubis | [] [] | aspell | [] | bash | | bfd | | bibshelf | [] [] | binutils | | bison | [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] | cpio | | cppi | | cpplib | | cryptsetup | | dfarc | [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] | dink | | doodle | | e2fsprogs | | enscript | | exif | [] | fetchmail | | findutils | | flex | | freedink | [] | gas | | gawk | | gcal | | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] | gettext-tools | [] | gip | [] [] | gjay | | gliv | | glunarclock | [] | gnubiff | | gnucash | () () () () | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | [] | gold | | gpe-aerial | [] | gpe-beam | [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] | gpe-timesheet | [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | | gsasl | | gss | | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | | gtick | | gtkam | [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | | hello | [] [] [] | help2man | | hylafax | | idutils | | indent | | iso_15924 | [] [] | iso_3166 | [] [] () [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] | iso_639 | [] [] | iso_639_3 | [] | jwhois | [] | kbd | | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | klavaro | [] | latrine | [] | ld | | leafpad | [] [] [] | libc | [] | libexif | | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | | libidn | | lifelines | | liferea | | lilypond | | linkdr | | lordsawar | | lprng | | lynx | | m4 | | mailfromd | | mailutils | | make | [] | man-db | | man-db-manpages | | minicom | [] | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | [] [] [] | psmisc | | pspp | | pwdutils | | radius | | recode | | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] | sed | | sharutils | | shishi | | skencil | | solfege | [] | solfege-manual | | soundtracker | | sp | | sysstat | [] | tar | [] | texinfo | [] | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] | wyslij-po | | xchat | [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +-----------------------------------------------+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr +---------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] [] | anubis | [] [] [] | aspell | [] [] [] [] [] | bash | [] [] | bfd | [] | bibshelf | [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] () | buzztard | [] [] | cflow | [] | clisp | [] [] | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cppi | [] | cpplib | [] | cryptsetup | [] | dfarc | [] | dialog | [] [] [] [] | dico | [] | diffutils | [] [] [] [] [] [] | dink | () | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | exif | [] [] [] () [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] [] | freedink | [] [] | gas | | gawk | [] [] [] [] | gcal | | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] | gip | [] [] [] [] [] | gjay | | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] | gnubiff | [] () | gnucash | [] () () () | gnuedu | [] | gnulib | [] [] [] [] | gnunet | | gnunet-gtk | | gnutls | [] [] | gold | | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] [] | gphoto2 | [] [] [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | grub | [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] [] [] | gutenprint | [] [] | hello | [] [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] [] [] [] | iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | iso_3166_2 | [] [] [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] [] [] | keytouch-editor | [] [] [] | keytouch-keyboa... | [] [] [] | klavaro | [] [] | latrine | [] [] | ld | | leafpad | [] [] [] [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] | libgphoto2_port | [] [] [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] | lifelines | [] [] | liferea | [] [] [] [] [] () () [] | lilypond | [] | linkdr | [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] | make | [] [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | | nano | [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | pies | [] | popt | [] [] [] [] | psmisc | [] [] [] | pspp | [] [] | pwdutils | [] | radius | [] [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () | rpm | [] [] [] | rush | [] [] | sarg | | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] [] [] [] | solfege-manual | [] [] [] | soundtracker | [] | sp | | sysstat | [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] [] | vice | [] | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +---------------------------------------------------+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW +---------------------------------------------------+ a2ps | [] [] [] [] [] | 27 aegis | [] | 9 ant-phone | [] [] [] [] | 9 anubis | [] [] [] [] | 15 aspell | [] [] [] | 20 bash | [] [] [] | 12 bfd | [] | 6 bibshelf | [] [] [] | 16 binutils | [] [] | 8 bison | [] [] | 12 bison-runtime | [] [] [] [] [] [] | 29 bluez-pin | [] [] [] [] [] [] [] [] | 37 bombono-dvd | [] | 4 buzztard | [] | 7 cflow | [] [] [] | 9 clisp | | 10 coreutils | [] [] [] [] | 22 cpio | [] [] [] [] [] [] | 13 cppi | [] [] | 5 cpplib | [] [] [] [] [] [] | 14 cryptsetup | [] [] | 7 dfarc | [] | 9 dialog | [] [] [] [] [] [] [] | 30 dico | [] | 2 diffutils | [] [] [] [] [] [] | 30 dink | | 4 doodle | [] [] | 7 e2fsprogs | [] [] [] | 11 enscript | [] [] [] [] | 17 exif | [] [] [] | 16 fetchmail | [] [] [] | 17 findutils | [] [] [] [] [] | 20 flex | [] [] [] [] | 15 freedink | [] | 10 gas | [] | 4 gawk | [] [] [] [] | 18 gcal | [] [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] [] | 34 gettext-runtime | [] [] [] [] [] [] [] | 29 gettext-tools | [] [] [] [] [] [] | 22 gip | [] [] [] [] | 22 gjay | [] | 3 gliv | [] [] [] | 14 glunarclock | [] [] [] [] [] | 19 gnubiff | [] [] | 4 gnucash | () [] () [] () | 10 gnuedu | [] [] | 7 gnulib | [] [] [] [] | 16 gnunet | [] | 1 gnunet-gtk | [] [] [] | 5 gnutls | [] [] [] | 10 gold | [] | 4 gpe-aerial | [] [] [] | 18 gpe-beam | [] [] [] | 19 gpe-bluetooth | [] [] [] | 13 gpe-calendar | [] [] [] [] | 12 gpe-clock | [] [] [] [] [] | 28 gpe-conf | [] [] [] [] | 20 gpe-contacts | [] [] [] | 17 gpe-edit | [] [] [] | 12 gpe-filemanager | [] [] [] [] | 16 gpe-go | [] [] [] [] [] | 25 gpe-login | [] [] [] | 11 gpe-ownerinfo | [] [] [] [] [] | 25 gpe-package | [] [] [] | 13 gpe-sketchbook | [] [] [] | 20 gpe-su | [] [] [] [] [] | 30 gpe-taskmanager | [] [] [] [] [] | 29 gpe-timesheet | [] [] [] [] [] | 25 gpe-today | [] [] [] [] [] [] | 30 gpe-todo | [] [] [] [] | 17 gphoto2 | [] [] [] [] [] | 24 gprof | [] [] [] | 15 gpsdrive | [] [] [] | 11 gramadoir | [] [] [] | 11 grep | [] [] [] | 10 grub | [] [] [] | 14 gsasl | [] [] [] [] | 14 gss | [] [] [] | 11 gst-plugins-bad | [] [] [] [] | 26 gst-plugins-base | [] [] [] [] [] | 24 gst-plugins-good | [] [] [] [] | 24 gst-plugins-ugly | [] [] [] [] [] | 29 gstreamer | [] [] [] [] | 22 gtick | [] [] [] | 13 gtkam | [] [] [] | 20 gtkorphan | [] [] [] | 14 gtkspell | [] [] [] [] [] [] [] [] [] | 45 gutenprint | [] | 10 hello | [] [] [] [] [] [] | 21 help2man | [] [] | 7 hylafax | [] | 5 idutils | [] [] [] [] | 17 indent | [] [] [] [] [] [] | 30 iso_15924 | () [] () [] [] | 16 iso_3166 | [] [] () [] [] () [] [] [] () | 53 iso_3166_2 | () [] () [] | 9 iso_4217 | [] () [] [] () [] [] | 26 iso_639 | [] [] [] () [] () [] [] [] [] | 38 iso_639_3 | [] () | 8 jwhois | [] [] [] [] [] | 16 kbd | [] [] [] [] [] | 15 keytouch | [] [] [] | 16 keytouch-editor | [] [] [] | 14 keytouch-keyboa... | [] [] [] | 14 klavaro | [] | 11 latrine | [] [] [] | 10 ld | [] [] [] [] | 11 leafpad | [] [] [] [] [] [] | 33 libc | [] [] [] [] [] | 21 libexif | [] () | 7 libextractor | [] | 1 libgnutls | [] [] [] | 9 libgpewidget | [] [] [] | 14 libgpg-error | [] [] [] | 9 libgphoto2 | [] [] | 8 libgphoto2_port | [] [] [] [] | 14 libgsasl | [] [] [] | 13 libiconv | [] [] [] [] | 21 libidn | () [] [] | 11 lifelines | [] | 4 liferea | [] [] [] | 21 lilypond | [] | 7 linkdr | [] [] [] [] [] | 17 lordsawar | | 1 lprng | [] | 3 lynx | [] [] [] [] | 17 m4 | [] [] [] [] | 19 mailfromd | [] [] | 3 mailutils | [] | 5 make | [] [] [] [] | 21 man-db | [] [] [] | 8 man-db-manpages | | 4 minicom | [] [] | 16 mkisofs | [] [] | 9 myserver | | 0 nano | [] [] [] [] | 21 opcodes | [] [] [] | 11 parted | [] [] [] [] [] | 15 pies | [] [] | 3 popt | [] [] [] [] [] [] | 27 psmisc | [] [] | 11 pspp | | 4 pwdutils | [] [] | 6 radius | [] [] | 9 recode | [] [] [] [] | 28 rosegarden | () | 0 rpm | [] [] [] | 11 rush | [] [] | 4 sarg | | 1 screem | [] | 3 scrollkeeper | [] [] [] [] [] | 27 sed | [] [] [] [] [] | 30 sharutils | [] [] [] [] [] | 22 shishi | [] | 3 skencil | [] [] | 7 solfege | [] [] [] [] | 16 solfege-manual | [] | 8 soundtracker | [] [] [] | 9 sp | [] | 3 sysstat | [] [] | 15 tar | [] [] [] [] [] [] | 23 texinfo | [] [] [] [] [] | 17 tin | | 4 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux-ng | [] [] [] [] | 20 vice | () () | 1 vmm | [] | 4 vorbis-tools | [] | 6 wastesedge | | 2 wdiff | [] [] | 7 wget | [] [] [] [] [] | 26 wyslij-po | [] [] | 8 xchat | [] [] [] [] [] [] | 36 xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 xkeyboard-config | [] [] [] | 22 +---------------------------------------------------+ 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If June 2010 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.5 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams.