ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/main.C
(Generate patch)

Comparing rxvt-unicode/src/main.C (file contents):
Revision 1.46 by pcg, Tue Feb 24 22:28:42 2004 UTC vs.
Revision 1.51 by pcg, Sat Mar 6 00:05:01 2004 UTC

56 STRNCPY (curlocale, locale, 128); 56 STRNCPY (curlocale, locale, 128);
57 setlocale (LC_CTYPE, curlocale); 57 setlocale (LC_CTYPE, curlocale);
58 } 58 }
59} 59}
60 60
61class rxvt_composite_vec rxvt_composite;
62
63text_t rxvt_composite_vec::compose (uint32_t c1, uint32_t c2)
64{
65 compose_char *cc;
66
67 // break compose chains, as stupid readline really likes to duplicate
68 // composing characters for some reason near the end of a line.
69 cc = (*this)[c1];
70 while (cc)
71 {
72 if (cc->c2 == c2) return c1;
73 cc = (*this)[cc->c1];
74 }
75
76 // check to see wether this combination already exists otherwise
77 for (cc = v.end (); cc-- > v.begin (); )
78 {
79 if (cc->c1 == c1 && cc->c2 == c2)
80 return COMPOSE_LO + (cc - v.begin ());
81 }
82
83 // allocate a new combination
84 if (v.size () == COMPOSE_HI - COMPOSE_LO + 1)
85 {
86 static int seen;
87
88 if (!seen++)
89 fprintf (stderr, "too many unrepresentable composite characters, try --enable-unicode3\n");
90
91 return REPLACEMENT_CHAR;
92 }
93
94 v.push_back (compose_char (c1, c2));
95
96 return v.size () - 1 + COMPOSE_LO;
97}
98
99int rxvt_composite_vec::expand (uint32_t c, wchar_t *r)
100{
101 compose_char *cc = (*this)[c];
102
103 if (!cc)
104 {
105 if (r) *r = c;
106 return 1;
107 }
108
109 int len = expand (cc->c1, r);
110
111 if (r) r += len;
112
113 if (cc->c2 != NOCHAR)
114 {
115 len++;
116 if (r) *r++ = cc->c2;
117 }
118
119 return len;
120
121}
122
123extern struct rxvt_composite_vec rxvt_composite;
61void * 124void *
62rxvt_term::operator new (size_t s) 125rxvt_term::operator new (size_t s)
63{ 126{
64 void *p = malloc (s); 127 void *p = malloc (s);
65 128
385 448
386 p = malloc (size); 449 p = malloc (size);
387 if (p) 450 if (p)
388 return p; 451 return p;
389 452
390 fprintf (stderr, APL_NAME ": memory allocation failure. Aborting"); 453 fprintf (stderr, RESNAME ": memory allocation failure. Aborting");
391 rxvt_clean_exit (); 454 rxvt_clean_exit ();
392 exit (EXIT_FAILURE); 455 exit (EXIT_FAILURE);
393 /* NOTREACHED */ 456 /* NOTREACHED */
394} 457}
395 458
401 464
402 p = calloc (number, size); 465 p = calloc (number, size);
403 if (p) 466 if (p)
404 return p; 467 return p;
405 468
406 fprintf (stderr, APL_NAME ": memory allocation failure. Aborting"); 469 fprintf (stderr, RESNAME ": memory allocation failure. Aborting");
407 rxvt_clean_exit (); 470 rxvt_clean_exit ();
408 exit (EXIT_FAILURE); 471 exit (EXIT_FAILURE);
409 /* NOTREACHED */ 472 /* NOTREACHED */
410} 473}
411 474
420 else 483 else
421 p = malloc (size); 484 p = malloc (size);
422 if (p) 485 if (p)
423 return p; 486 return p;
424 487
425 fprintf (stderr, APL_NAME ": memory allocation failure. Aborting"); 488 fprintf (stderr, RESNAME ": memory allocation failure. Aborting");
426 rxvt_clean_exit (); 489 rxvt_clean_exit ();
427 exit (EXIT_FAILURE); 490 exit (EXIT_FAILURE);
428 /* NOTREACHED */ 491 /* NOTREACHED */
429} 492}
430 493
1036 0, TermWin_TotalWidth (), menuBar_TotalHeight ()); 1099 0, TermWin_TotalWidth (), menuBar_TotalHeight ());
1037 1100
1038 XMoveResizeWindow (display->display, TermWin.vt, window_vt_x, 1101 XMoveResizeWindow (display->display, TermWin.vt, window_vt_x,
1039 window_vt_y, TermWin_TotalWidth (), 1102 window_vt_y, TermWin_TotalWidth (),
1040 TermWin_TotalHeight ()); 1103 TermWin_TotalHeight ());
1041 scr_clear (); 1104 scr_clear (height != old_height);
1042#ifdef XPM_BACKGROUND 1105#ifdef XPM_BACKGROUND
1043 resize_pixmap (); 1106 resize_pixmap ();
1044#endif 1107#endif
1045 1108
1046 } 1109 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines