aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Robert2008-07-22 12:33:13 +0000
committerAdrian Robert2008-07-22 12:33:13 +0000
commitdf2142db9fc6f38c74366c17e02454e15975652a (patch)
treea9b5b2e50cbd75bdb14168c7d141ae2db1c01581
parent365bac35a5ff56d76207a5130c7746b085172cee (diff)
downloademacs-df2142db9fc6f38c74366c17e02454e15975652a.tar.gz
emacs-df2142db9fc6f38c74366c17e02454e15975652a.zip
NS cleanup: change 'PENDING' to 'FIXME'/'TODO'/'XXX'
-rw-r--r--src/ChangeLog7
-rw-r--r--src/nsfont.m34
-rw-r--r--src/nsgui.h4
-rw-r--r--src/nsmenu.m32
-rw-r--r--src/nsterm.m99
5 files changed, 91 insertions, 85 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4c057a06fb2..81d1006f56f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,12 @@
12008-07-22 Adrian Robert <Adrian.B.Robert@gmail.com> 12008-07-22 Adrian Robert <Adrian.B.Robert@gmail.com>
2 2
3 * nsgui.h:
4 * nsfont.m:
5 * nsmenu.m:
6 * nsterm.m: Change PENDINGS to FIXME / TODO / XXX.
7
82008-07-22 Adrian Robert <Adrian.B.Robert@gmail.com>
9
3 * nsterm.m (syms_of_nsterm): Remove debugging println. 10 * nsterm.m (syms_of_nsterm): Remove debugging println.
4 11
52008-07-22 David Reitter <david.reitter@gmail.com> 122008-07-22 David Reitter <david.reitter@gmail.com>
diff --git a/src/nsfont.m b/src/nsfont.m
index 132b1aaf29b..f206e0d27b2 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -96,8 +96,8 @@ nsfont_get_family (Lisp_Object font_spec)
96 char *tmp = strdup (SDATA (SYMBOL_NAME (tem))); 96 char *tmp = strdup (SDATA (SYMBOL_NAME (tem)));
97 NSString *family; 97 NSString *family;
98 nsfont_unescape_name (tmp); 98 nsfont_unescape_name (tmp);
99 /* PENDING: this seems to be needed only for font names that are 99 /* TODO: this seems to be needed only for font names that are
100 hard-coded into emacs, like 'helvetica' for splash screen */ 100 hard-coded into emacs, like 'helvetica' for splash screen */
101 if (tmp) 101 if (tmp)
102 tmp[0] = toupper (tmp[0]); 102 tmp[0] = toupper (tmp[0]);
103 family = [NSString stringWithUTF8String: tmp]; 103 family = [NSString stringWithUTF8String: tmp];
@@ -108,7 +108,7 @@ nsfont_get_family (Lisp_Object font_spec)
108 108
109 109
110/* Converts FONT_WEIGHT, FONT_SLANT, FONT_WIDTH to NSFont traits. */ 110/* Converts FONT_WEIGHT, FONT_SLANT, FONT_WIDTH to NSFont traits. */
111/* PENDING (20080601): The font backend's strategy for handling font 111/* TODO (20080601): The font backend's strategy for handling font
112 styles continues to evolve. When/if this stabilizes, we 112 styles continues to evolve. When/if this stabilizes, we
113 can change the code here to be more sophisticated and accurate. 113 can change the code here to be more sophisticated and accurate.
114 For now, we rely on "normal/plain" style being numeric 100. */ 114 For now, we rely on "normal/plain" style being numeric 100. */
@@ -413,7 +413,7 @@ nsfont_match (Lisp_Object frame, Lisp_Object font_spec)
413 if (fontNames && [fontNames count] > 0) 413 if (fontNames && [fontNames count] > 0)
414 { 414 {
415 NSString *fontName = [fontNames objectAtIndex: 0]; 415 NSString *fontName = [fontNames objectAtIndex: 0];
416 /*PENDING: is there a more efficient way to get family name? */ 416 /* XXX: is there a more efficient way to get family name? */
417 NSFont *font = [NSFont fontWithName: fontName size: 0]; 417 NSFont *font = [NSFont fontWithName: fontName size: 0];
418 if (font != nil) 418 if (font != nil)
419 { 419 {
@@ -453,7 +453,7 @@ nsfont_list_family (Lisp_Object frame)
453 NSString *family; 453 NSString *family;
454 while (family = [families nextObject]) 454 while (family = [families nextObject])
455 list = Fcons (intern ([family UTF8String]), list); 455 list = Fcons (intern ([family UTF8String]), list);
456 /*PENDING: escape the name? */ 456 /* FIXME: escape the name? */
457 457
458 if (NSFONT_TRACE) 458 if (NSFONT_TRACE)
459 fprintf (stderr, "nsfont: list families returning %d entries\n", 459 fprintf (stderr, "nsfont: list families returning %d entries\n",
@@ -519,7 +519,7 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size)
519 font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); 519 font_info = (struct nsfont_info *) XFONT_OBJECT (font_object);
520 font = (struct font *)font_info; 520 font = (struct font *)font_info;
521 if (!font) 521 if (!font)
522 return Qnil; /*PENDING: this copies w32, but causes a segfault */ 522 return Qnil; /* FIXME: this copies w32, but causes a segfault */
523 523
524 if (NSFONT_TRACE) 524 if (NSFONT_TRACE)
525 { 525 {
@@ -627,7 +627,7 @@ BLOCK_INPUT;
627 font->relative_compose = 0; 627 font->relative_compose = 0;
628 font->font_encoder = NULL; 628 font->font_encoder = NULL;
629 629
630 /*PENDING: does anything care about this? */ 630 /* TODO: does anything care about this? */
631 font->props[FONT_FORMAT_INDEX] = Qns; 631 font->props[FONT_FORMAT_INDEX] = Qns;
632 font->props[FONT_FILE_INDEX] = Qnil; 632 font->props[FONT_FILE_INDEX] = Qnil;
633 633
@@ -723,7 +723,7 @@ BLOCK_INPUT;
723 /* set up metrics portion of font struct */ 723 /* set up metrics portion of font struct */
724 font->ascent = [sfont ascender]; 724 font->ascent = [sfont ascender];
725 font->descent = -[sfont descender]; 725 font->descent = -[sfont descender];
726 font->min_width = [sfont widthOfString: @"|"]; /* PENDING */ 726 font->min_width = [sfont widthOfString: @"|"]; /* FIXME */
727 font->space_width = lrint (nsfont_char_width (sfont, ' ')); 727 font->space_width = lrint (nsfont_char_width (sfont, ' '));
728 font->average_width = lrint (font_info->width); 728 font->average_width = lrint (font_info->width);
729 font->max_width = lrint (font_info->max_bounds.width); 729 font->max_width = lrint (font_info->max_bounds.width);
@@ -748,9 +748,9 @@ nsfont_close (FRAME_PTR f, struct font *font)
748 struct nsfont_info *font_info = (struct nsfont_info *)font; 748 struct nsfont_info *font_info = (struct nsfont_info *)font;
749 int i; 749 int i;
750 750
751 /* PENDING: this occurs apparently due to same failure to detect same font 751 /* FIXME: this occurs apparently due to same failure to detect same font
752 that causes need for cache in nsfont_open () 752 that causes need for cache in nsfont_open ()
753 (came after unicode-2 -> trunk) */ 753 (came after unicode-2 -> trunk) */
754 if (!font_info) 754 if (!font_info)
755 return; 755 return;
756 756
@@ -820,8 +820,8 @@ nsfont_text_extents (struct font *font, unsigned int *code, int nglyphs,
820 for (i =0; i<nglyphs; i++) 820 for (i =0; i<nglyphs; i++)
821 { 821 {
822 /* get metrics for this glyph, filling cache if need be */ 822 /* get metrics for this glyph, filling cache if need be */
823 /* PENDING: get metrics for whole string from an NSLayoutManager 823 /* TODO: get metrics for whole string from an NSLayoutManager
824 (if not too slow) */ 824 (if not too slow) */
825 high = (code[i] & 0xFF00) >> 8; 825 high = (code[i] & 0xFF00) >> 8;
826 low = code[i] & 0x00FF; 826 low = code[i] & 0x00FF;
827 if (!font_info->metrics[high]) 827 if (!font_info->metrics[high])
@@ -903,7 +903,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
903 int cwidth, twidth = 0; 903 int cwidth, twidth = 0;
904 int hi, lo; 904 int hi, lo;
905 char isComposite = 0; /* s->first_glyph->type == COMPOSITE_GLYPH; */ 905 char isComposite = 0; /* s->first_glyph->type == COMPOSITE_GLYPH; */
906 /* PENDING: composition: no vertical displacement is considered. */ 906 /* FIXME: composition: no vertical displacement is considered. */
907 t+= s->gidx; /* advance into composition */ 907 t+= s->gidx; /* advance into composition */
908 for (i =0; i<s->nchars - s->gidx; i++, t++) 908 for (i =0; i<s->nchars - s->gidx; i++, t++)
909 { 909 {
@@ -915,7 +915,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
915 } 915 }
916 else 916 else
917 { 917 {
918 if (!font->metrics[hi]) /*PENDING: why/how can we need this now? */ 918 if (!font->metrics[hi]) /* FIXME: why/how can we need this now? */
919 ns_glyph_metrics (font, hi); 919 ns_glyph_metrics (font, hi);
920 cwidth = font->metrics[hi][lo].width; 920 cwidth = font->metrics[hi][lo].width;
921 } 921 }
@@ -987,7 +987,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
987 col = (NS_FACE_FOREGROUND (face) != nil 987 col = (NS_FACE_FOREGROUND (face) != nil
988 ? ns_lookup_indexed_color (NS_FACE_FOREGROUND (face), s->f) 988 ? ns_lookup_indexed_color (NS_FACE_FOREGROUND (face), s->f)
989 : FRAME_FOREGROUND_COLOR (s->f)); 989 : FRAME_FOREGROUND_COLOR (s->f));
990 /*PENDING: find another way to pass this */ 990 /* FIXME: find another way to pass this */
991 bgCol = (ns_tmp_flags != NS_DUMPGLYPH_FOREGROUND ? nil 991 bgCol = (ns_tmp_flags != NS_DUMPGLYPH_FOREGROUND ? nil
992 : (NS_FACE_BACKGROUND (face) != 0 992 : (NS_FACE_BACKGROUND (face) != 0
993 ? ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f) 993 ? ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f)
@@ -1320,7 +1320,7 @@ ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block)
1320 g = unichars[i]; 1320 g = unichars[i];
1321#else 1321#else
1322 g = glyphStorage->cglyphs[i]; 1322 g = glyphStorage->cglyphs[i];
1323 /*PENDING: is this a good check? maybe need to use coveredChars.. */ 1323 /* TODO: is this a good check? maybe need to use coveredChars.. */
1324 if (g > numGlyphs) 1324 if (g > numGlyphs)
1325 g = 0xFFFF; /* hopefully unused... */ 1325 g = 0xFFFF; /* hopefully unused... */
1326#endif 1326#endif
diff --git a/src/nsgui.h b/src/nsgui.h
index 91b2956bf3f..54e336fdf3d 100644
--- a/src/nsgui.h
+++ b/src/nsgui.h
@@ -78,8 +78,8 @@ typedef unichar XChar2b;
78#define FACE_DEFAULT (~0) 78#define FACE_DEFAULT (~0)
79 79
80 80
81/* PENDING: xfaces requires these structures, but the question is are we 81/* XXX: xfaces requires these structures, but the question is are we
82 forced to use them? */ 82 forced to use them? */
83typedef struct _XGCValues 83typedef struct _XGCValues
84{ 84{
85#ifdef __OBJC__ 85#ifdef __OBJC__
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 7fbc1b10c0a..d8dad3e28f8 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -78,7 +78,7 @@ EmacsMenu *mainMenu, *svcsMenu;
78 ========================================================================== */ 78 ========================================================================== */
79 79
80 80
81/*23: PENDING: not currently used, but should normalize with other terms. */ 81/*23: FIXME: not currently used, but should normalize with other terms. */
82void 82void
83x_activate_menubar (struct frame *f) 83x_activate_menubar (struct frame *f)
84{ 84{
@@ -197,9 +197,9 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
197 } 197 }
198 set_buffer_internal_1 (XBUFFER (buffer)); 198 set_buffer_internal_1 (XBUFFER (buffer));
199 199
200 /* PENDING: for some reason this is not needed in other terms, 200 /* TODO: for some reason this is not needed in other terms,
201 but some menu updates call Info-extract-pointer which causes 201 but some menu updates call Info-extract-pointer which causes
202 abort-on-error if waiting-for-input. Needs further investigation. */ 202 abort-on-error if waiting-for-input. Needs further investigation. */
203 owfi = waiting_for_input; 203 owfi = waiting_for_input;
204 waiting_for_input = 0; 204 waiting_for_input = 0;
205 205
@@ -239,10 +239,10 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
239 if (NILP (string)) 239 if (NILP (string))
240 break; 240 break;
241 241
242 /* PENDING: we'd like to only parse the needed submenu, but this 242 /* FIXME: we'd like to only parse the needed submenu, but this
243 was causing crashes in the _common parsing code.. need to make 243 was causing crashes in the _common parsing code.. need to make
244 sure proper initialization done.. */ 244 sure proper initialization done.. */
245/* if (submenu && strcmp (submenuTitle, SDATA (string))) 245/* if (submenu && strcmp (submenuTitle, SDATA (string)))
246 continue; */ 246 continue; */
247 247
248 submenu_start[i] = menu_items_used; 248 submenu_start[i] = menu_items_used;
@@ -298,16 +298,16 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
298 set_buffer_internal_1 (prev); 298 set_buffer_internal_1 (prev);
299 299
300 /* Compare the new menu items with previous, and leave off if no change */ 300 /* Compare the new menu items with previous, and leave off if no change */
301 /* PENDING: following other terms here, but seems like this should be 301 /* FIXME: following other terms here, but seems like this should be
302 done before parse stage 2 above, since its results aren't used */ 302 done before parse stage 2 above, since its results aren't used */
303 if (previous_menu_items_used 303 if (previous_menu_items_used
304 && (!submenu || (submenu && submenu == last_submenu)) 304 && (!submenu || (submenu && submenu == last_submenu))
305 && menu_items_used == previous_menu_items_used) 305 && menu_items_used == previous_menu_items_used)
306 { 306 {
307 for (i = 0; i < previous_menu_items_used; i++) 307 for (i = 0; i < previous_menu_items_used; i++)
308 /* PENDING: this ALWAYS fails on Buffers menu items.. something 308 /* FIXME: this ALWAYS fails on Buffers menu items.. something
309 about their strings causes them to change every time, so we 309 about their strings causes them to change every time, so we
310 double-check failures */ 310 double-check failures */
311 if (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i])) 311 if (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i]))
312 if (!(STRINGP (previous_items[i]) 312 if (!(STRINGP (previous_items[i])
313 && STRINGP (XVECTOR (menu_items)->contents[i]) 313 && STRINGP (XVECTOR (menu_items)->contents[i])
@@ -333,7 +333,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
333 } 333 }
334 } 334 }
335 /* The menu items are different, so store them in the frame */ 335 /* The menu items are different, so store them in the frame */
336 /* PENDING: this is not correct for single-submenu case */ 336 /* FIXME: this is not correct for single-submenu case */
337 f->menu_bar_vector = menu_items; 337 f->menu_bar_vector = menu_items;
338 f->menu_bar_items_used = menu_items_used; 338 f->menu_bar_items_used = menu_items_used;
339 339
@@ -830,7 +830,7 @@ ns_popup_menu (Lisp_Object position, Lisp_Object menu)
830 } 830 }
831 else 831 else
832 { /* no position given */ 832 { /* no position given */
833 /* PENDING: if called during dump, we need to stop precomputation of 833 /* FIXME: if called during dump, we need to stop precomputation of
834 key equivalents (see below) because the keydefs in ns-win.el have 834 key equivalents (see below) because the keydefs in ns-win.el have
835 not been loaded yet. */ 835 not been loaded yet. */
836 if (noninteractive) 836 if (noninteractive)
@@ -934,7 +934,7 @@ ns_popup_menu (Lisp_Object position, Lisp_Object menu)
934 specpdl_count2 = SPECPDL_INDEX (); 934 specpdl_count2 = SPECPDL_INDEX ();
935 935
936#if 0 936#if 0
937 /*PENDING: a couple of one-line differences prevent reuse */ 937 /* FIXME: a couple of one-line differences prevent reuse */
938 wv = digest_single_submenu (0, menu_items_used, Qnil); 938 wv = digest_single_submenu (0, menu_items_used, Qnil);
939#else 939#else
940 { 940 {
diff --git a/src/nsterm.m b/src/nsterm.m
index 3e582861467..30472c6f8da 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -140,7 +140,7 @@ Lisp_Object ns_input_color, ns_input_text, ns_working_text;
140Lisp_Object ns_input_spi_name, ns_input_spi_arg; 140Lisp_Object ns_input_spi_name, ns_input_spi_arg;
141Lisp_Object Vx_toolkit_scroll_bars; 141Lisp_Object Vx_toolkit_scroll_bars;
142static Lisp_Object Qmodifier_value; 142static Lisp_Object Qmodifier_value;
143/*PENDING: unsure why these defined in term files, anyway we need in keymap.c */ 143/* TODO: unsure why these defined in term files, anyway we need in keymap.c */
144Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper; 144Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper;
145extern Lisp_Object Qcursor_color, Qcursor_type, Qns; 145extern Lisp_Object Qcursor_color, Qcursor_type, Qns;
146 146
@@ -215,8 +215,8 @@ static int ns_window_num =0;
215static NSRect uRect; 215static NSRect uRect;
216static BOOL gsaved = NO; 216static BOOL gsaved = NO;
217BOOL ns_in_resize = NO; 217BOOL ns_in_resize = NO;
218int ns_tmp_flags; /*PENDING */ 218int ns_tmp_flags; /* FIXME */
219struct nsfont_info *ns_tmp_font; /*PENDING */ 219struct nsfont_info *ns_tmp_font; /* FIXME */
220/*static int debug_lock = 0; */ 220/*static int debug_lock = 0; */
221 221
222#ifdef NS_IMPL_COCOA 222#ifdef NS_IMPL_COCOA
@@ -297,13 +297,13 @@ static BOOL inNsSelect = 0;
297 ns_send_appdefined (-1); \ 297 ns_send_appdefined (-1); \
298 } 298 }
299 299
300/*PENDING: get rid of need for these forward declarations */ 300/* TODO: get rid of need for these forward declarations */
301static void ns_condemn_scroll_bars (struct frame *f), 301static void ns_condemn_scroll_bars (struct frame *f),
302 ns_judge_scroll_bars (struct frame *f); 302 ns_judge_scroll_bars (struct frame *f);
303 303
304/* unused variables needed for compatibility reasons */ 304/* unused variables needed for compatibility reasons */
305int x_use_underline_position_properties, x_underline_at_descent_line; 305int x_use_underline_position_properties, x_underline_at_descent_line;
306/* PENDING: figure out what to do with underline_minimum_offset. */ 306/* FIXME: figure out what to do with underline_minimum_offset. */
307 307
308 308
309/* ========================================================================== 309/* ==========================================================================
@@ -413,7 +413,6 @@ ns_init_paths ()
413 } 413 }
414 } 414 }
415 415
416 /*PENDING: append to INFOPATH... */
417 if (!getenv ("INFOPATH")) 416 if (!getenv ("INFOPATH"))
418 { 417 {
419 resourcePath = [resourceDir stringByAppendingPathComponent: @"info"]; 418 resourcePath = [resourceDir stringByAppendingPathComponent: @"info"];
@@ -847,7 +846,7 @@ ns_ring_bell ()
847 r.origin.y += (r.size.height - dim.y) / 2; 846 r.origin.y += (r.size.height - dim.y) / 2;
848 r.size.width = dim.x; 847 r.size.width = dim.x;
849 r.size.height = dim.y; 848 r.size.height = dim.y;
850 /* PENDING: cacheImageInRect under GNUSTEP does not account for 849 /* XXX: cacheImageInRect under GNUSTEP does not account for
851 offset in x_set_window_size, so overestimate (4 fine on Cocoa) */ 850 offset in x_set_window_size, so overestimate (4 fine on Cocoa) */
852 surr = NSInsetRect (r, -10, -10); 851 surr = NSInsetRect (r, -10, -10);
853 ns_focus (frame, &surr, 1); 852 ns_focus (frame, &surr, 1);
@@ -987,7 +986,7 @@ x_make_frame_visible (struct frame *f)
987 -------------------------------------------------------------------------- */ 986 -------------------------------------------------------------------------- */
988{ 987{
989 NSTRACE (x_make_frame_visible); 988 NSTRACE (x_make_frame_visible);
990 /* PENDING: at some points in past this was not needed, as the only place that 989 /* XXX: at some points in past this was not needed, as the only place that
991 called this (frame.c:Fraise_frame ()) also called raise_lower; 990 called this (frame.c:Fraise_frame ()) also called raise_lower;
992 if this ends up the case again, comment this out again. */ 991 if this ends up the case again, comment this out again. */
993 if (!FRAME_VISIBLE_P (f)) 992 if (!FRAME_VISIBLE_P (f))
@@ -1158,8 +1157,8 @@ x_set_window_size (struct frame *f, int change_grav, int cols, int rows)
1158 1157
1159 /* If we have a change in toolbar display, calculate height */ 1158 /* If we have a change in toolbar display, calculate height */
1160 if (tb) 1159 if (tb)
1161 /* PENDING: GNUstep has not yet implemented the first method below, added 1160 /* XXX: GNUstep has not yet implemented the first method below, added
1162 in Panther, however the second is incorrect under Cocoa. */ 1161 in Panther, however the second is incorrect under Cocoa. */
1163#ifdef NS_IMPL_GNUSTEP 1162#ifdef NS_IMPL_GNUSTEP
1164 FRAME_NS_TOOLBAR_HEIGHT (f) 1163 FRAME_NS_TOOLBAR_HEIGHT (f)
1165 = NSHeight ([NSWindow frameRectForContentRect: NSMakeRect (0, 0, 0, 0) 1164 = NSHeight ([NSWindow frameRectForContentRect: NSMakeRect (0, 0, 0, 0)
@@ -1359,9 +1358,9 @@ ns_get_color (const char *name, NSColor **col)
1359 return 0; 1358 return 0;
1360 } 1359 }
1361 1360
1362 /* 23: PENDING: emacs seems to downcase everything before passing it here, 1361 /* 23: FIXME: emacs seems to downcase everything before passing it here,
1363 which we can work around, except for GRAY, since gray##, where ## is 1362 which we can work around, except for GRAY, since gray##, where ## is
1364 decimal between 0 and 99, is also an X11 colorname. */ 1363 decimal between 0 and 99, is also an X11 colorname. */
1365 if (name[0] == '#') /* X11 format */ 1364 if (name[0] == '#') /* X11 format */
1366 { 1365 {
1367 hex = name + 1; 1366 hex = name + 1;
@@ -1460,7 +1459,7 @@ ns_get_color (const char *name, NSColor **col)
1460 NSString *name; 1459 NSString *name;
1461 NSColorList *clist; 1460 NSColorList *clist;
1462#ifdef NS_IMPL_GNUSTEP 1461#ifdef NS_IMPL_GNUSTEP
1463 /* PENDING: who is wrong, the requestor or the implementation? */ 1462 /* XXX: who is wrong, the requestor or the implementation? */
1464 if ([nsname compare: @"Highlight" options: NSCaseInsensitiveSearch] 1463 if ([nsname compare: @"Highlight" options: NSCaseInsensitiveSearch]
1465 == NSOrderedSame) 1464 == NSOrderedSame)
1466 nsname = @"highlightColor"; 1465 nsname = @"highlightColor";
@@ -1638,7 +1637,7 @@ x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y)
1638 NSTRACE (x_set_mouse_pixel_position); 1637 NSTRACE (x_set_mouse_pixel_position);
1639 ns_raise_frame (f); 1638 ns_raise_frame (f);
1640#if 0 1639#if 0
1641 /*PENDING: this does not work, and what about GNUstep? */ 1640 /* FIXME: this does not work, and what about GNUstep? */
1642#ifdef NS_IMPL_COCOA 1641#ifdef NS_IMPL_COCOA
1643 [FRAME_NS_VIEW (f) lockFocus]; 1642 [FRAME_NS_VIEW (f) lockFocus];
1644 PSsetmouse ((float)pix_x, (float)pix_y); 1643 PSsetmouse ((float)pix_x, (float)pix_y);
@@ -1732,8 +1731,8 @@ ns_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
1732 1731
1733 if (last_mouse_scroll_bar != nil && insist == 0) 1732 if (last_mouse_scroll_bar != nil && insist == 0)
1734 { 1733 {
1735 /* PENDING: we do not use this path at the moment because drag events will 1734 /* TODO: we do not use this path at the moment because drag events will
1736 go directly to the EmacsScroller. Leaving code in for now. */ 1735 go directly to the EmacsScroller. Leaving code in for now. */
1737 [last_mouse_scroll_bar getMouseMotionPart: (int *)part window: bar_window 1736 [last_mouse_scroll_bar getMouseMotionPart: (int *)part window: bar_window
1738 x: x y: y]; 1737 x: x y: y];
1739 if (time) *time = last_mouse_movement_time; 1738 if (time) *time = last_mouse_movement_time;
@@ -1754,7 +1753,7 @@ ns_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
1754 f = dpyinfo->x_focus_frame ? dpyinfo->x_focus_frame 1753 f = dpyinfo->x_focus_frame ? dpyinfo->x_focus_frame
1755 : SELECTED_FRAME (); 1754 : SELECTED_FRAME ();
1756 1755
1757 if (f && f->output_data.ns) /*PENDING: 2nd check no longer needed? */ 1756 if (f && f->output_data.ns) /* TODO: 2nd check no longer needed? */
1758 { 1757 {
1759 view = FRAME_NS_VIEW (*fp); 1758 view = FRAME_NS_VIEW (*fp);
1760 1759
@@ -2422,7 +2421,7 @@ show_hourglass (struct atimer *timer)
2422 2421
2423 BLOCK_INPUT; 2422 BLOCK_INPUT;
2424 2423
2425 /*PENDING: add NSProgressIndicator to selected frame (see macfns.c) */ 2424 /* TODO: add NSProgressIndicator to selected frame (see macfns.c) */
2426 2425
2427 hourglass_shown_p = 1; 2426 hourglass_shown_p = 1;
2428 UNBLOCK_INPUT; 2427 UNBLOCK_INPUT;
@@ -2435,7 +2434,7 @@ hide_hourglass ()
2435 if (!hourglass_shown_p) 2434 if (!hourglass_shown_p)
2436 return; 2435 return;
2437 2436
2438 /*PENDING: remove NSProgressIndicator from all frames */ 2437 /* TODO: remove NSProgressIndicator from all frames */
2439 2438
2440 hourglass_shown_p = 0; 2439 hourglass_shown_p = 0;
2441 UNBLOCK_INPUT; 2440 UNBLOCK_INPUT;
@@ -2563,7 +2562,7 @@ ns_draw_relief (NSRect r, int thickness, char raised_p,
2563 if (newBaseCol == nil) 2562 if (newBaseCol == nil)
2564 newBaseCol = [NSColor grayColor]; 2563 newBaseCol = [NSColor grayColor];
2565 2564
2566 if (newBaseCol != baseCol) /* PENDING: better check */ 2565 if (newBaseCol != baseCol) /* TODO: better check */
2567 { 2566 {
2568 [baseCol release]; 2567 [baseCol release];
2569 baseCol = [newBaseCol retain]; 2568 baseCol = [newBaseCol retain];
@@ -2843,7 +2842,7 @@ ns_draw_glyph_string (struct glyph_string *s)
2843 External (RIF): Main draw-text call. 2842 External (RIF): Main draw-text call.
2844 -------------------------------------------------------------------------- */ 2843 -------------------------------------------------------------------------- */
2845{ 2844{
2846 /*PENDING (optimize): focus for box and contents draw */ 2845 /* TODO (optimize): focus for box and contents draw */
2847 NSRect r[2]; 2846 NSRect r[2];
2848 int n; 2847 int n;
2849 char box_drawn_p = 0; 2848 char box_drawn_p = 0;
@@ -2894,11 +2893,11 @@ ns_draw_glyph_string (struct glyph_string *s)
2894 - WINDOW_RIGHT_FRINGE_WIDTH (s->w))); 2893 - WINDOW_RIGHT_FRINGE_WIDTH (s->w)));
2895 r[0].size.width -= overrun; 2894 r[0].size.width -= overrun;
2896 2895
2897 /* PENDING: Try to work between problem where a stretch glyph on 2896 /* XXX: Try to work between problem where a stretch glyph on
2898 a partially-visible bottom row will clear part of the 2897 a partially-visible bottom row will clear part of the
2899 modeline, and another where list-buffers headers and similar 2898 modeline, and another where list-buffers headers and similar
2900 rows erroneously have visible_height set to 0. Not sure 2899 rows erroneously have visible_height set to 0. Not sure
2901 where this is coming from as other terms seem not to show. */ 2900 where this is coming from as other terms seem not to show. */
2902 r[0].size.height = min (s->height, s->row->visible_height); 2901 r[0].size.height = min (s->height, s->row->visible_height);
2903 } 2902 }
2904 2903
@@ -3089,7 +3088,7 @@ ns_read_socket (struct terminal *terminal, int expected,
3089 to ourself, otherwise [NXApp run] will never exit. */ 3088 to ourself, otherwise [NXApp run] will never exit. */
3090 send_appdefined = YES; 3089 send_appdefined = YES;
3091 3090
3092 /*PENDING: from termhooks.h: */ 3091 /* TODO: from termhooks.h: */
3093 /* XXX Please note that a non-zero value of EXPECTED only means that 3092 /* XXX Please note that a non-zero value of EXPECTED only means that
3094 there is available input on at least one of the currently opened 3093 there is available input on at least one of the currently opened
3095 terminal devices -- but not necessarily on this device. 3094 terminal devices -- but not necessarily on this device.
@@ -3596,7 +3595,7 @@ static struct redisplay_interface ns_redisplay_interface =
3596 x_get_glyph_overhangs, /*23: generic OK */ 3595 x_get_glyph_overhangs, /*23: generic OK */
3597 x_fix_overlapping_area, /*generic OK */ 3596 x_fix_overlapping_area, /*generic OK */
3598 ns_draw_fringe_bitmap, /*23 */ 3597 ns_draw_fringe_bitmap, /*23 */
3599 0, /* define_fringe_bitmap */ /*PENDING: simplify ns_draw_fringe_bitmap? */ 3598 0, /* define_fringe_bitmap */ /* FIXME: simplify ns_draw_fringe_bitmap */
3600 0, /* destroy_fringe_bitmap */ 3599 0, /* destroy_fringe_bitmap */
3601 ns_compute_glyph_string_overhangs, /*23 */ 3600 ns_compute_glyph_string_overhangs, /*23 */
3602 ns_draw_glyph_string, /*23: interface to nsfont.m */ 3601 ns_draw_glyph_string, /*23: interface to nsfont.m */
@@ -3611,7 +3610,7 @@ static struct redisplay_interface ns_redisplay_interface =
3611static void 3610static void
3612ns_delete_display (struct ns_display_info *dpyinfo) 3611ns_delete_display (struct ns_display_info *dpyinfo)
3613{ 3612{
3614 /*PENDING... */ 3613 /* TODO... */
3615} 3614}
3616 3615
3617 3616
@@ -4050,7 +4049,7 @@ or shrunk (negative). Zero (the default) means standard line height.\n\
4050 Qcontrol = intern ("control"); 4049 Qcontrol = intern ("control");
4051 Fput (Qcontrol, Qmodifier_value, make_number (ctrl_modifier)); 4050 Fput (Qcontrol, Qmodifier_value, make_number (ctrl_modifier));
4052 4051
4053 /*PENDING: move to common code */ 4052 /* FIXME: move to common code */
4054 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, 4053 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
4055 doc: /* If not nil, Emacs uses toolkit scroll bars. */); 4054 doc: /* If not nil, Emacs uses toolkit scroll bars. */);
4056#ifdef USE_TOOLKIT_SCROLL_BARS 4055#ifdef USE_TOOLKIT_SCROLL_BARS
@@ -4083,8 +4082,8 @@ baseline level. The default value is nil. */);
4083 4082
4084 /* Tell emacs about this window system. */ 4083 /* Tell emacs about this window system. */
4085 Fprovide (intern ("ns-windowing"), Qnil); 4084 Fprovide (intern ("ns-windowing"), Qnil);
4086 /* PENDING: try to move this back into lisp, ns-win.el loaded too late 4085 /* TODO: try to move this back into lisp, ns-win.el loaded too late
4087 right now */ 4086 right now */
4088 { 4087 {
4089 Lisp_Object args[3] = { intern ("ns-version-string"), build_string ("9.0"), 4088 Lisp_Object args[3] = { intern ("ns-version-string"), build_string ("9.0"),
4090 build_string ("NS Window system port version number.") }; 4089 build_string ("NS Window system port version number.") };
@@ -4279,7 +4278,7 @@ fprintf (stderr, "res = %d\n", EQ (res, Qt)); // FIXME
4279 return YES; 4278 return YES;
4280} 4279}
4281 4280
4282/*PENDING: these may help w/IO switching btwn terminal and NSApp */ 4281/* TODO: these may help w/IO switching btwn terminal and NSApp */
4283- (void)applicationDidBecomeActive: (NSNotification *)notification 4282- (void)applicationDidBecomeActive: (NSNotification *)notification
4284{ 4283{
4285} 4284}
@@ -4497,13 +4496,13 @@ extern void update_window_cursor (struct window *w, int on);
4497/*#if defined (COCOA_EXPERIMENTAL_CTRL_G) */ 4496/*#if defined (COCOA_EXPERIMENTAL_CTRL_G) */
4498 if (![[self window] isKeyWindow]) 4497 if (![[self window] isKeyWindow])
4499 { 4498 {
4500 /* PENDING: Using NO_SOCK_SIGIO like Carbon causes a condition in which, 4499 /* XXX: Using NO_SOCK_SIGIO like Carbon causes a condition in which,
4501 when Emacs display updates a different frame from the current one, 4500 when Emacs display updates a different frame from the current one,
4502 and temporarily selects it, then processes some interrupt-driven 4501 and temporarily selects it, then processes some interrupt-driven
4503 input (dispnew.c:3878), OS will send the event to the correct NSWindow, 4502 input (dispnew.c:3878), OS will send the event to the correct NSWindow,
4504 but for some reason that window has its first responder set to the 4503 but for some reason that window has its first responder set to the
4505 NSView most recently updated (I guess), which is not the correct one. 4504 NSView most recently updated (I guess), which is not the correct one.
4506 UPDATE: After multi-TTY merge this happens even w/o NO_SOCK_SIGIO */ 4505 UPDATE: After multi-TTY merge this happens even w/o NO_SOCK_SIGIO */
4507 if ([[theEvent window] isKindOfClass: [EmacsWindow class]]) 4506 if ([[theEvent window] isKindOfClass: [EmacsWindow class]])
4508 [[(EmacsView *)[theEvent window] delegate] keyDown: theEvent]; 4507 [[(EmacsView *)[theEvent window] delegate] keyDown: theEvent];
4509 return; 4508 return;
@@ -4558,7 +4557,7 @@ extern void update_window_cursor (struct window *w, int on);
4558 && !fnKeysym 4557 && !fnKeysym
4559 && [[theEvent characters] length] != 0) 4558 && [[theEvent characters] length] != 0)
4560 { 4559 {
4561 /* PENDING: the code we get will be unshifted, so if we have 4560 /* XXX: the code we get will be unshifted, so if we have
4562 a shift modifier, must convert ourselves */ 4561 a shift modifier, must convert ourselves */
4563 if (!(flags & NSShiftKeyMask)) 4562 if (!(flags & NSShiftKeyMask))
4564 code = [[theEvent characters] characterAtIndex: 0]; 4563 code = [[theEvent characters] characterAtIndex: 0];
@@ -4667,7 +4666,7 @@ if (NS_KEYLOG) NSLog (@"insertText '%@'\tlen = %d", aString, len);
4667 for (i =0; i<len; i++) 4666 for (i =0; i<len; i++)
4668 { 4667 {
4669 code = [aString characterAtIndex: i]; 4668 code = [aString characterAtIndex: i];
4670 /* PENDING: still need this? */ 4669 /* TODO: still need this? */
4671 if (code == 0x2DC) 4670 if (code == 0x2DC)
4672 code = '~'; /* 0x7E */ 4671 code = '~'; /* 0x7E */
4673 emacs_event->modifiers = 0; 4672 emacs_event->modifiers = 0;
@@ -4790,7 +4789,7 @@ if (NS_KEYLOG) NSLog (@"firstRectForCharRange request");
4790 return (long)self; 4789 return (long)self;
4791} 4790}
4792 4791
4793/*PENDING: below here not yet implemented correctly, but may not be needed */ 4792/* TODO: below here not yet implemented correctly, but may not be needed */
4794 4793
4795- (void)doCommandBySelector: (SEL)aSelector 4794- (void)doCommandBySelector: (SEL)aSelector
4796{ 4795{
@@ -5725,8 +5724,8 @@ if (NS_KEYLOG) NSLog (@"attributedSubstringFromRange request");
5725 5724
5726+ (float) scrollerWidth 5725+ (float) scrollerWidth
5727{ 5726{
5728 /* PENDING: if we want to allow variable widths, this is the place to do it, 5727 /* TODO: if we want to allow variable widths, this is the place to do it,
5729 however neither GNUstep nor Cocoa support it very well */ 5728 however neither GNUstep nor Cocoa support it very well */
5730 return [NSScroller scrollerWidth]; 5729 return [NSScroller scrollerWidth];
5731} 5730}
5732 5731
@@ -5869,8 +5868,8 @@ if (NS_KEYLOG) NSLog (@"attributedSubstringFromRange request");
5869 return self; 5868 return self;
5870} 5869}
5871 5870
5872/* PENDING: unused at moment (see ns_mouse_position) at the moment because 5871/* FIXME: unused at moment (see ns_mouse_position) at the moment because
5873 drag events will go directly to the EmacsScroller. Leaving in for now. */ 5872 drag events will go directly to the EmacsScroller. Leaving in for now. */
5874-(void)getMouseMotionPart: (int *)part window: (Lisp_Object *)window 5873-(void)getMouseMotionPart: (int *)part window: (Lisp_Object *)window
5875 x: (Lisp_Object *)x y: ( Lisp_Object *)y 5874 x: (Lisp_Object *)x y: ( Lisp_Object *)y
5876{ 5875{
@@ -6180,7 +6179,7 @@ static void selectItemWithTag (NSPopUpButton *popup, int tag)
6180 if (expandSpace != prevExpandSpace) 6179 if (expandSpace != prevExpandSpace)
6181 { 6180 {
6182 ns_expand_space = make_float (expandSpace); 6181 ns_expand_space = make_float (expandSpace);
6183 /* PENDING: more needed: store needed metrics in nsfont_info, update 6182 /* TODO: more needed: store needed metrics in nsfont_info, update
6184 frame default font max_bounds and fontp, recompute faces */ 6183 frame default font max_bounds and fontp, recompute faces */
6185/* FRAME_LINE_HEIGHT (frame) *= (expandSpace / prevExpandSpace); 6184/* FRAME_LINE_HEIGHT (frame) *= (expandSpace / prevExpandSpace);
6186 x_set_window_size (frame, 0, frame->text_cols, frame->text_lines); */ 6185 x_set_window_size (frame, 0, frame->text_cols, frame->text_lines); */
@@ -6409,7 +6408,7 @@ ns_list_fonts (FRAME_PTR f, Lisp_Object pattern, int size, int maxnames)
6409 pattFam = patt; 6408 pattFam = patt;
6410 else 6409 else
6411 pattFam = ns_xlfd_to_fontname (patt); 6410 pattFam = ns_xlfd_to_fontname (patt);
6412 /*PENDING: '*' at beginning matches literally.. */ 6411 /* XXX: '*' at beginning matches literally.. */
6413 if (pattFam[0] == '*') 6412 if (pattFam[0] == '*')
6414 pattFam[0] = '.'; 6413 pattFam[0] = '.';
6415 6414