Deleted Added
full compact
term.c (17141) term.c (26926)
1/*-
2 * Copyright (c) 1992, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Christos Zoulas of Cornell University.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 280 unchanged lines hidden (view full) ---

289 clen = strlen(cap);
290
291 tlen = *str == NULL ? 0 : strlen(*str);
292
293 /*
294 * New string is shorter; no need to allocate space
295 */
296 if (clen <= tlen) {
1/*-
2 * Copyright (c) 1992, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Christos Zoulas of Cornell University.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 280 unchanged lines hidden (view full) ---

289 clen = strlen(cap);
290
291 tlen = *str == NULL ? 0 : strlen(*str);
292
293 /*
294 * New string is shorter; no need to allocate space
295 */
296 if (clen <= tlen) {
297 (void) strcpy(*str, cap);
297 (void)strcpy(*str, cap); /* XXX strcpy is safe */
298 return;
299 }
300
301 /*
302 * New string is longer; see if we have enough space to append
303 */
304 if (el->el_term.t_loc + 3 < TC_BUFSIZE) {
298 return;
299 }
300
301 /*
302 * New string is longer; see if we have enough space to append
303 */
304 if (el->el_term.t_loc + 3 < TC_BUFSIZE) {
305 (void) strcpy(*str = &el->el_term.t_buf[el->el_term.t_loc], cap);
305 /* XXX strcpy is safe */
306 (void)strcpy(*str = &el->el_term.t_buf[el->el_term.t_loc], cap);
306 el->el_term.t_loc += clen + 1; /* one for \0 */
307 return;
308 }
309
310 /*
311 * Compact our buffer; no need to check compaction, cause we know it
312 * fits...
313 */

--- 7 unchanged lines hidden (view full) ---

321 termbuf[tlen++] = '\0';
322 }
323 memcpy(el->el_term.t_buf, termbuf, TC_BUFSIZE);
324 el->el_term.t_loc = tlen;
325 if (el->el_term.t_loc + 3 >= TC_BUFSIZE) {
326 (void) fprintf(el->el_errfile, "Out of termcap string space.\n");
327 return;
328 }
307 el->el_term.t_loc += clen + 1; /* one for \0 */
308 return;
309 }
310
311 /*
312 * Compact our buffer; no need to check compaction, cause we know it
313 * fits...
314 */

--- 7 unchanged lines hidden (view full) ---

322 termbuf[tlen++] = '\0';
323 }
324 memcpy(el->el_term.t_buf, termbuf, TC_BUFSIZE);
325 el->el_term.t_loc = tlen;
326 if (el->el_term.t_loc + 3 >= TC_BUFSIZE) {
327 (void) fprintf(el->el_errfile, "Out of termcap string space.\n");
328 return;
329 }
329 (void) strcpy(*str = &el->el_term.t_buf[el->el_term.t_loc], cap);
330 /* XXX strcpy is safe */
331 (void)strcpy(*str = &el->el_term.t_buf[el->el_term.t_loc], cap);
330 el->el_term.t_loc += clen + 1; /* one for \0 */
331 return;
332} /* end term_alloc */
333
334
335/* term_rebuffer_display():
336 * Rebuffer the display after the screen changed size
337 */

--- 423 unchanged lines hidden (view full) ---

761 term = "dumb";
762
763 memset(el->el_term.t_cap, 0, TC_BUFSIZE);
764
765 i = tgetent(el->el_term.t_cap, term);
766
767 if (i <= 0) {
768 if (i == -1)
332 el->el_term.t_loc += clen + 1; /* one for \0 */
333 return;
334} /* end term_alloc */
335
336
337/* term_rebuffer_display():
338 * Rebuffer the display after the screen changed size
339 */

--- 423 unchanged lines hidden (view full) ---

763 term = "dumb";
764
765 memset(el->el_term.t_cap, 0, TC_BUFSIZE);
766
767 i = tgetent(el->el_term.t_cap, term);
768
769 if (i <= 0) {
770 if (i == -1)
769#ifdef __FreeBSD__
770 (void) fprintf(el->el_errfile, "Cannot open /usr/share/misc/termcap.\n");
771#else
772 (void) fprintf(el->el_errfile, "Cannot open /etc/termcap.\n");
773#endif
771 (void) fprintf(el->el_errfile, "Cannot read termcap database;\n");
774 else if (i == 0)
775 (void) fprintf(el->el_errfile,
772 else if (i == 0)
773 (void) fprintf(el->el_errfile,
776 "No entry for terminal type \"%s\"\n", term);
774 "No entry for terminal type \"%s\";\n", term);
777 (void) fprintf(el->el_errfile, "using dumb terminal settings.\n");
778 Val(T_co) = 80; /* do a dumb terminal */
779 Val(T_pt) = Val(T_km) = Val(T_li) = 0;
780 Val(T_xt) = Val(T_MT);
781 for (t = tstr; t->name != NULL; t++)
782 term_alloc(el, t, NULL);
783 }
784 else {

--- 19 unchanged lines hidden (view full) ---

804 el->el_term.t_size.h = Val(T_li);
805
806 term_setflags(el);
807
808 (void) term_get_size(el, &lins, &cols);/* get the correct window size */
809 term_change_size(el, lins, cols);
810 (void) sigprocmask(SIG_SETMASK, &oset, NULL);
811 term_bind_arrow(el);
775 (void) fprintf(el->el_errfile, "using dumb terminal settings.\n");
776 Val(T_co) = 80; /* do a dumb terminal */
777 Val(T_pt) = Val(T_km) = Val(T_li) = 0;
778 Val(T_xt) = Val(T_MT);
779 for (t = tstr; t->name != NULL; t++)
780 term_alloc(el, t, NULL);
781 }
782 else {

--- 19 unchanged lines hidden (view full) ---

802 el->el_term.t_size.h = Val(T_li);
803
804 term_setflags(el);
805
806 (void) term_get_size(el, &lins, &cols);/* get the correct window size */
807 term_change_size(el, lins, cols);
808 (void) sigprocmask(SIG_SETMASK, &oset, NULL);
809 term_bind_arrow(el);
812 return 0;
810 return i <= 0 ? -1 : 0;
813} /* end term_set */
814
815
816/* term_get_size():
817 * Return the new window size in lines and cols, and
818 * true if the size was changed.
819 */
820protected int

--- 560 unchanged lines hidden ---
811} /* end term_set */
812
813
814/* term_get_size():
815 * Return the new window size in lines and cols, and
816 * true if the size was changed.
817 */
818protected int

--- 560 unchanged lines hidden ---