diff options
| author | Adrian Robert | 2008-07-22 12:33:13 +0000 |
|---|---|---|
| committer | Adrian Robert | 2008-07-22 12:33:13 +0000 |
| commit | df2142db9fc6f38c74366c17e02454e15975652a (patch) | |
| tree | a9b5b2e50cbd75bdb14168c7d141ae2db1c01581 | |
| parent | 365bac35a5ff56d76207a5130c7746b085172cee (diff) | |
| download | emacs-df2142db9fc6f38c74366c17e02454e15975652a.tar.gz emacs-df2142db9fc6f38c74366c17e02454e15975652a.zip | |
NS cleanup: change 'PENDING' to 'FIXME'/'TODO'/'XXX'
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/nsfont.m | 34 | ||||
| -rw-r--r-- | src/nsgui.h | 4 | ||||
| -rw-r--r-- | src/nsmenu.m | 32 | ||||
| -rw-r--r-- | src/nsterm.m | 99 |
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 @@ | |||
| 1 | 2008-07-22 Adrian Robert <Adrian.B.Robert@gmail.com> | 1 | 2008-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 | |||
| 8 | 2008-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 | ||
| 5 | 2008-07-22 David Reitter <david.reitter@gmail.com> | 12 | 2008-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? */ |
| 83 | typedef struct _XGCValues | 83 | typedef 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. */ |
| 82 | void | 82 | void |
| 83 | x_activate_menubar (struct frame *f) | 83 | x_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; | |||
| 140 | Lisp_Object ns_input_spi_name, ns_input_spi_arg; | 140 | Lisp_Object ns_input_spi_name, ns_input_spi_arg; |
| 141 | Lisp_Object Vx_toolkit_scroll_bars; | 141 | Lisp_Object Vx_toolkit_scroll_bars; |
| 142 | static Lisp_Object Qmodifier_value; | 142 | static 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 */ |
| 144 | Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper; | 144 | Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper; |
| 145 | extern Lisp_Object Qcursor_color, Qcursor_type, Qns; | 145 | extern Lisp_Object Qcursor_color, Qcursor_type, Qns; |
| 146 | 146 | ||
| @@ -215,8 +215,8 @@ static int ns_window_num =0; | |||
| 215 | static NSRect uRect; | 215 | static NSRect uRect; |
| 216 | static BOOL gsaved = NO; | 216 | static BOOL gsaved = NO; |
| 217 | BOOL ns_in_resize = NO; | 217 | BOOL ns_in_resize = NO; |
| 218 | int ns_tmp_flags; /*PENDING */ | 218 | int ns_tmp_flags; /* FIXME */ |
| 219 | struct nsfont_info *ns_tmp_font; /*PENDING */ | 219 | struct 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 */ |
| 301 | static void ns_condemn_scroll_bars (struct frame *f), | 301 | static 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 */ |
| 305 | int x_use_underline_position_properties, x_underline_at_descent_line; | 305 | int 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 = | |||
| 3611 | static void | 3610 | static void |
| 3612 | ns_delete_display (struct ns_display_info *dpyinfo) | 3611 | ns_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 | ||