void tty_draw_box (int y, int x, int ys, int xs, gboolean single) { int y2, x2; if (ys <= 0 || xs <= 0) return; ys--; xs--; y2 = y + ys; x2 = x + xs; tty_draw_vline (y, x, mc_tty_frm[single ? MC_TTY_FRM_VERT : MC_TTY_FRM_DVERT], ys); tty_draw_vline (y, x2, mc_tty_frm[single ? MC_TTY_FRM_VERT : MC_TTY_FRM_DVERT], ys); tty_draw_hline (y, x, mc_tty_frm[single ? MC_TTY_FRM_HORIZ : MC_TTY_FRM_DHORIZ], xs); tty_draw_hline (y2, x, mc_tty_frm[single ? MC_TTY_FRM_HORIZ : MC_TTY_FRM_DHORIZ], xs); tty_gotoyx (y, x); tty_print_alt_char (ACS_ULCORNER, single); tty_gotoyx (y2, x); tty_print_alt_char (ACS_LLCORNER, single); tty_gotoyx (y, x2); tty_print_alt_char (ACS_URCORNER, single); tty_gotoyx (y2, x2); tty_print_alt_char (ACS_LRCORNER, single); }
static void view_status (WDiff *view, int ord, int width, int pos) { char buf[BUFSIZ]; int filename_width; off_t skip_offs = view->df[ord].offs; int moves = view->df[ord].move; tty_setcolor(SELECTED_COLOR); #if VERTICAL_SPLIT tty_gotoyx(0, pos); #else /* !VERTICAL_SPLIT */ tty_gotoyx(pos, 0); #endif /* !VERTICAL_SPLIT */ filename_width = width - 22; if (filename_width < 8) { filename_width = 8; } if (filename_width >= (int)sizeof(buf)) { /* abnormal, but avoid buffer overflow */ filename_width = sizeof(buf) - 1; } trim(strip_home_and_password(view->file[ord]), buf, filename_width); tty_printf("%-*s %s%-16lX ", filename_width, buf, moves ? "0x" : "--", skip_offs); }
extern void tty_print_vline(int top, int left, int length) { int i; tty_gotoyx(top, left); for (i = 0; i < length; i++) { tty_gotoyx(top + i, left); tty_print_one_vline(); } }
static void chmod_refresh (Dlg_head * h) { int y = file_gb->widget.y + 1; int x = file_gb->widget.x + 2; common_dialog_repaint (h); tty_setcolor (COLOR_NORMAL); tty_gotoyx (y, x); tty_print_string (file_info_labels[0]); tty_gotoyx (y + 2, x); tty_print_string (file_info_labels[1]); tty_gotoyx (y + 4, x); tty_print_string (file_info_labels[2]); tty_gotoyx (y + 6, x); tty_print_string (file_info_labels[3]); }
void rotate_dash (void) { static const char rotating_dash[] = "|/-\\"; static size_t pos = 0; if (!nice_rotating_dash || (ok_to_refresh <= 0)) return; if (pos >= sizeof (rotating_dash) - 1) pos = 0; tty_gotoyx (0, COLS - 1); tty_setcolor (NORMAL_COLOR); tty_print_char (rotating_dash[pos]); mc_refresh (); pos++; }
void show_rxvt_contents (int starty, unsigned char y1, unsigned char y2) { unsigned char *k; int bytes, i, j, cols = 0; y1 += (keybar_visible != 0); /* i don't knwo why we need this - paul */ y2 += (keybar_visible != 0); while (anything_ready ()) tty_lowlevel_getch (); /* my own wierd protocol base 26 - paul */ printf ("\033CL%c%c%c%c\n", (y1 / 26) + 'A', (y1 % 26) + 'A', (y2 / 26) + 'A', (y2 % 26) + 'A'); bytes = (y2 - y1) * (COLS + 1) + 1; /* *should* be the number of bytes read */ j = 0; k = g_malloc (bytes); for (;;) { int c; c = rxvt_getc (); if (c < 0) break; if (j < bytes) k[j++] = c; for (cols = 1;; cols++) { c = rxvt_getc (); if (c < 0) break; if (j < bytes) k[j++] = c; } } for (i = 0; i < j; i++) { if ((i % cols) == 0) tty_gotoyx (starty + (i / cols), 0); tty_print_char (is_printable (k[i]) ? k[i] : ' '); } g_free (k); }
static int view_display_file (WDiff *view, int ord, int r, int c, int height, int width, #if !VERTICAL_SPLIT int total_height, #endif /* !VERTICAL_SPLIT */ int owidth) { int i, j, k; char buf[BUFSIZ]; const char *data = view->df[ord].data; const char *diffs = view->diffs; off_t offset = view->df[ord].offs; int nbytes = view->nbytes; off_t mask = 0; int available = width - (nbytes * 4 + 1); if (owidth > available - 1) { owidth = available - 1; if (owidth < 0) { owidth = 0; } } if (owidth > 0) { mask = ((((off_t)1 << ((owidth - 1) * 4)) - 1) << 4) | 0xF; owidth++; } if ((int)sizeof(buf) <= width) { /* abnormal, but avoid buffer overflow */ return -1; } for (j = 0; j < height; j++) { int ch; int stop = 1; tty_gotoyx(r + j, c); if (owidth > 0) { sprintf(buf, "%0*llX ", owidth - 1, offset & mask); tty_setcolor(MARKED_COLOR); tty_print_nstring(buf, owidth); } for (i = owidth, k = 0; k < nbytes; k++, i += 3) { ch = *data++; if (diffs[k] & (1 << ord)) { stop = 0; sprintf(buf + i, "%02X ", ch & 0xFF); ch = convert_to_display_c(ch & 0xFF); if (!is_printable(ch)) { ch = '.'; } } else { buf[i + 0] = ' '; buf[i + 1] = ' '; buf[i + 2] = ' '; buf[i + 3] = '\0'; ch = ' '; } buf[owidth + 3 * nbytes + 1 + k] = ch; if (diffs[k] & XDIFF_DIFFERENT) { tty_setcolor(VIEW_UNDERLINED_COLOR); } else { tty_setcolor(NORMAL_COLOR); } tty_print_nstring(buf + i, 3); } tty_setcolor(NORMAL_COLOR); if (i < width) { buf[i] = ' '; tty_print_char(buf[i]); i++; } for (k = 0; k < nbytes; k++, i++) { if (*diffs++ & XDIFF_DIFFERENT) { tty_setcolor(VIEW_UNDERLINED_COLOR); } else { tty_setcolor(NORMAL_COLOR); } tty_print_char(buf[i] & 0xFF); } tty_setcolor(NORMAL_COLOR); for (; i < width; i++) { buf[i] = ' '; tty_print_char(buf[i]); } buf[width] = '\0'; /* XXX we fully construct the buffer, but don't necessarily have to */ offset += nbytes; if (stop) { break; } } #if !VERTICAL_SPLIT height = total_height; #endif /* !VERTICAL_SPLIT */ if (j < height) { memset(buf, ' ', width); buf[width] = '\0'; for (; j < height; j++) { tty_gotoyx(r + j, c); tty_print_nstring(buf, width); } } return 0; }