1 To: vim_dev@googlegroups.com
4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
11 Problem: Photon code style doesn't match Vim style.
12 Solution: Clean up some of it. (Elias Diem)
13 Files: src/gui_photon.c
16 *** ../vim-7.3.261/src/gui_photon.c 2011-01-17 20:08:03.000000000 +0100
17 --- src/gui_photon.c 2011-07-27 14:07:02.000000000 +0200
22 #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
23 ! #define RGB(r,g,b) PgRGB(r,g,b)
25 ! #define EVENT_BUFFER_SIZE sizeof( PhEvent_t ) + 1000
27 /* Some defines for gui_mch_mousehide() */
28 #define MOUSE_HIDE TRUE
32 #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
33 ! #define RGB(r, g, b) PgRGB(r, g, b)
35 ! #define EVENT_BUFFER_SIZE sizeof(PhEvent_t) + 1000
37 /* Some defines for gui_mch_mousehide() */
38 #define MOUSE_HIDE TRUE
41 static PtCallbackF_t gui_ph_handle_menu_unrealized;
43 #ifdef USE_PANEL_GROUP
44 ! static void gui_ph_get_panelgroup_margins( short*, short*, short*, short* );
48 ! static PhImage_t *gui_ph_toolbar_find_icon( vimmenu_T *menu );
51 ! static void gui_ph_draw_start( void );
52 ! static void gui_ph_draw_end( void );
54 /* Set the text for the balloon */
55 ! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
61 ! PgColor_t text_color );
63 /****************************************************************************/
65 ! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
71 ! PgColor_t text_color )
77 ! PtSetArg( &arg, Pt_ARG_POINTER, &menu, 0 );
78 ! PtGetResources( widget, 1, &arg );
80 /* Override the text and position */
85 int index = MENU_INDEX_TIP;
86 ! if( menu->strings[ index ] != NULL )
87 tooltip = menu->strings[ index ];
90 ! return( PtInflateBalloon(
93 /* Don't put the balloon at the bottom,
95 static PtCallbackF_t gui_ph_handle_menu_unrealized;
97 #ifdef USE_PANEL_GROUP
98 ! static void gui_ph_get_panelgroup_margins(short*, short*, short*, short*);
102 ! static PhImage_t *gui_ph_toolbar_find_icon(vimmenu_T *menu);
105 ! static void gui_ph_draw_start(void);
106 ! static void gui_ph_draw_end(void);
108 /* Set the text for the balloon */
109 ! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
114 PgColor_t fill_color,
115 ! PgColor_t text_color);
117 /****************************************************************************/
119 ! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
124 PgColor_t fill_color,
125 ! PgColor_t text_color)
131 ! PtSetArg(&arg, Pt_ARG_POINTER, &menu, 0);
132 ! PtGetResources(widget, 1, &arg);
134 /* Override the text and position */
139 int index = MENU_INDEX_TIP;
140 ! if (menu->strings[ index ] != NULL)
141 tooltip = menu->strings[ index ];
144 ! return PtInflateBalloon(
147 /* Don't put the balloon at the bottom,
157 ! gui_ph_resize_container( void )
161 ! PtWidgetArea( gui.vimWindow, &area );
162 ! PtWidgetPos ( gui.vimContainer, &area.pos );
164 ! PtSetResource( gui.vimContainer, Pt_ARG_AREA, &area, 0 );
168 gui_ph_handle_menu_resize(
171 ! PtCallbackInfo_t *info )
173 PtContainerCallback_t *sizes = info->cbdata;
174 PtWidget_t *container;
183 ! gui_ph_resize_container(void)
187 ! PtWidgetArea(gui.vimWindow, &area);
188 ! PtWidgetPos (gui.vimContainer, &area.pos);
190 ! PtSetResource(gui.vimContainer, Pt_ARG_AREA, &area, 0);
194 gui_ph_handle_menu_resize(
197 ! PtCallbackInfo_t *info)
199 PtContainerCallback_t *sizes = info->cbdata;
200 PtWidget_t *container;
203 /* Because vim treats the toolbar and menubar separately,
204 * and here they're lumped together into a PtToolbarGroup,
205 * we only need either menu_height or toolbar_height set at once */
206 ! if( gui.menu_is_active )
208 gui.menu_height = height;
209 gui.toolbar_height = 0;
211 /* Because vim treats the toolbar and menubar separately,
212 * and here they're lumped together into a PtToolbarGroup,
213 * we only need either menu_height or toolbar_height set at once */
214 ! if (gui.menu_is_active)
216 gui.menu_height = height;
217 gui.toolbar_height = 0;
220 container = gui.vimContainer;
223 ! PtSetResource( container, Pt_ARG_POS, &below_menu, 0 );
225 gui_ph_resize_container();
227 #ifdef USE_PANEL_GROUP
228 gui_ph_get_panelgroup_margins(
229 &pg_margin_top, &pg_margin_bottom,
230 ! &pg_margin_left, &pg_margin_right );
232 ! return( Pt_CONTINUE );
237 container = gui.vimContainer;
240 ! PtSetResource(container, Pt_ARG_POS, &below_menu, 0);
242 gui_ph_resize_container();
244 #ifdef USE_PANEL_GROUP
245 gui_ph_get_panelgroup_margins(
246 &pg_margin_top, &pg_margin_bottom,
247 ! &pg_margin_left, &pg_margin_right);
249 ! return Pt_CONTINUE;
255 gui_ph_handle_timer_cursor(
258 ! PtCallbackInfo_t *info )
260 ! if( blink_state == BLINK_ON )
263 blink_state = BLINK_OFF;
264 ! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
265 ! blink_offtime, 0 );
269 gui_update_cursor(TRUE, FALSE);
270 blink_state = BLINK_ON;
271 ! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
274 ! return( Pt_CONTINUE );
279 gui_ph_handle_timer_cursor(
282 ! PtCallbackInfo_t *info)
284 ! if (blink_state == BLINK_ON)
287 blink_state = BLINK_OFF;
288 ! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
293 gui_update_cursor(TRUE, FALSE);
294 blink_state = BLINK_ON;
295 ! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
298 ! return Pt_CONTINUE;
307 ! return( Pt_CONTINUE );
315 ! return Pt_CONTINUE;
324 ! return( Pt_CONTINUE );
332 ! return Pt_CONTINUE;
340 /* FIXME: return straight away here? */
341 ! return( Pt_CONTINUE );
345 gui_drag_scrollbar(sb, value, dragging);
347 ! return( Pt_CONTINUE );
354 /* FIXME: return straight away here? */
355 ! return Pt_CONTINUE;
359 gui_drag_scrollbar(sb, value, dragging);
361 ! return Pt_CONTINUE;
367 /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
368 if( key->key_flags & Pk_KF_Compose )
370 ! return( Pt_CONTINUE );
373 if( (key->key_flags & Pk_KF_Cap_Valid) &&
375 /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
376 if( key->key_flags & Pk_KF_Compose )
378 ! return Pt_CONTINUE;
381 if( (key->key_flags & Pk_KF_Cap_Valid) &&
384 gui_is_menu_shortcut( key->key_cap ) ) ) )
386 /* Fallthrough and let photon look for the hotkey */
387 ! return( Pt_CONTINUE );
392 gui_is_menu_shortcut( key->key_cap ) ) ) )
394 /* Fallthrough and let photon look for the hotkey */
395 ! return Pt_CONTINUE;
401 add_to_input_buf( string, len );
404 ! return( Pt_CONSUME );
409 add_to_input_buf( string, len );
421 ! return( Pt_CONTINUE );
429 ! return Pt_CONTINUE;
437 add_to_input_buf( string, len );
438 ! return( Pt_CONSUME );
442 ! return( Pt_CONTINUE );
449 add_to_input_buf( string, len );
454 ! return Pt_CONTINUE;
460 if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
462 gui_mouse_moved( mouse_x, mouse_y );
463 ! return( Pt_CONTINUE );
466 if( pointer->key_mods & Pk_KM_Shift )
468 if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
470 gui_mouse_moved( mouse_x, mouse_y );
471 ! return Pt_CONTINUE;
474 if( pointer->key_mods & Pk_KM_Shift )
477 gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
480 ! return( Pt_CONTINUE );
483 /* Handle a focus change of the PtRaw widget */
485 gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
488 ! return Pt_CONTINUE;
491 /* Handle a focus change of the PtRaw widget */
494 PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
495 gui_ph_handle_mouse, NULL );
497 ! return( Pt_CONTINUE );
502 PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
503 gui_ph_handle_mouse, NULL );
505 ! return Pt_CONTINUE;
511 PtRealizeWidget( menu->submenu_id );
514 ! return( Pt_CONTINUE );
517 /* This is used for pulldown/popup menus and also toolbar buttons */
519 PtRealizeWidget( menu->submenu_id );
522 ! return Pt_CONTINUE;
525 /* This is used for pulldown/popup menus and also toolbar buttons */
528 vimmenu_T *menu = (vimmenu_T *) data;
531 ! return( Pt_CONTINUE );
534 /* Stop focus from disappearing into the menubar... */
536 vimmenu_T *menu = (vimmenu_T *) data;
539 ! return Pt_CONTINUE;
542 /* Stop focus from disappearing into the menubar... */
545 PtCallbackInfo_t *info )
547 PtGiveFocus( gui.vimTextArea, NULL );
548 ! return( Pt_CONTINUE );
553 PtCallbackInfo_t *info )
555 PtGiveFocus( gui.vimTextArea, NULL );
556 ! return Pt_CONTINUE;
562 PtCallbackInfo_t *info )
564 gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
565 ! return( Pt_CONTINUE );
568 /****************************************************************************/
570 PtCallbackInfo_t *info )
572 gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
573 ! return Pt_CONTINUE;
576 /****************************************************************************/
579 ( STRCMP( items->dname, name ) != 0 ) )
587 ( STRCMP( items->dname, name ) != 0 ) )
599 ! return( Pt_CONTINUE );
607 ! return Pt_CONTINUE;
636 gui_ph_pg_remove_buffer( menu->dname );
639 ! return( Pt_CONTINUE );
644 gui_ph_pg_remove_buffer( menu->dname );
647 ! return Pt_CONTINUE;
653 PtContainerHold( gui.vimContainer );
656 ! return( Pt_CONTINUE );
659 /****************************************************************************/
661 PtContainerHold( gui.vimContainer );
664 ! return Pt_CONTINUE;
667 /****************************************************************************/
671 gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
672 if( gui.event_buffer == NULL )
675 /* Get a translation so we can convert from ISO Latin-1 to UTF */
676 charset_translate = PxTranslateSet( NULL, "latin1" );
679 gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
680 if( gui.event_buffer == NULL )
683 /* Get a translation so we can convert from ISO Latin-1 to UTF */
684 charset_translate = PxTranslateSet( NULL, "latin1" );
687 PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
688 gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
689 if( gui.vimWindow == NULL )
692 PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
693 PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
695 PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
696 gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
697 if( gui.vimWindow == NULL )
700 PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
701 PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
705 gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
706 if( gui.vimPanelGroup == NULL )
709 PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
710 gui_ph_handle_pg_change, NULL );
713 gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
714 if( gui.vimPanelGroup == NULL )
717 PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
718 gui_ph_handle_pg_change, NULL );
722 gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
723 if( gui.vimContainer == NULL )
726 PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
730 gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
731 if( gui.vimContainer == NULL )
734 PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
739 gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
740 if( gui.vimTextArea == NULL)
743 /* TODO: use PtAddEventHandlers instead? */
744 /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
747 gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
748 if( gui.vimTextArea == NULL)
751 /* TODO: use PtAddEventHandlers instead? */
752 /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
756 gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
757 if( gui_ph_timer_cursor == NULL )
760 gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
761 if( gui_ph_timer_timeout == NULL )
764 PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
765 gui_ph_handle_timer_cursor, NULL);
768 gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
769 if( gui_ph_timer_cursor == NULL )
772 gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
773 if( gui_ph_timer_timeout == NULL )
776 PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
777 gui_ph_handle_timer_cursor, NULL);
780 gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
782 if( gui.vimToolBarGroup == NULL )
785 PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
786 gui_ph_handle_menu_resize, NULL );
788 gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
790 if( gui.vimToolBarGroup == NULL )
793 PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
794 gui_ph_handle_menu_resize, NULL );
798 gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
799 if( gui.vimMenuBar == NULL )
806 gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
807 if( gui.vimMenuBar == NULL )
815 gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
816 if( gui.vimToolBar == NULL )
820 * Size for the toolbar is fetched in gui_mch_show_toolbar, after
823 gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
824 if( gui.vimToolBar == NULL )
828 * Size for the toolbar is fetched in gui_mch_show_toolbar, after
838 gui_mch_init_check(void)
840 ! return( (is_photon_available == TRUE) ? OK : FAIL );
852 gui_mch_init_check(void)
854 ! return (is_photon_available == TRUE) ? OK : FAIL;
860 if (gui_win_x != -1 && gui_win_y != -1)
861 gui_mch_set_winpos(gui_win_x, gui_win_y);
863 ! return( (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL );
868 if (gui_win_x != -1 && gui_win_y != -1)
869 gui_mch_set_winpos(gui_win_x, gui_win_y);
871 ! return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
877 exit_gui_mch_update( void *data )
879 *(int *)data = FALSE;
885 exit_gui_mch_update( void *data )
887 *(int *)data = FALSE;
894 if( input_available() )
896 PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
899 else if( is_timeout == TRUE )
905 if( input_available() )
907 PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
910 else if( is_timeout == TRUE )
917 vim_free( default_path );
919 if( file.ret == Pt_FSDIALOG_BTN1 )
920 ! return( vim_strsave( file.path ) );
927 vim_free( default_path );
929 if( file.ret == Pt_FSDIALOG_BTN1 )
930 ! return vim_strsave(file.path);
939 PtModalUnblock( modal_ctrl, (void *) button );
947 PtModalUnblock( modal_ctrl, (void *) button );
956 if( info->reason_subtype == Pt_EDIT_ACTIVATE )
957 gui_ph_dialog_close( 1, data );
958 ! return( Pt_CONTINUE );
964 if( info->reason_subtype == Pt_EDIT_ACTIVATE )
965 gui_ph_dialog_close( 1, data );
966 ! return Pt_CONTINUE;
972 if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
974 gui_ph_dialog_close( 0, data );
975 ! return( Pt_CONSUME );
977 ! return( Pt_PROCESS );
982 if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
984 gui_ph_dialog_close( 0, data );
993 button_count = len = i = 0;
995 if( buttons == NULL || *buttons == NUL )
998 /* There is one less separator than buttons, so bump up the button count */
1001 button_count = len = i = 0;
1003 if( buttons == NULL || *buttons == NUL )
1006 /* There is one less separator than buttons, so bump up the button count */
1010 vim_free( button_array );
1011 vim_free( buttons_copy );
1013 ! return( dialog_result );
1016 /****************************************************************************/
1018 vim_free( button_array );
1019 vim_free( buttons_copy );
1021 ! return dialog_result;
1024 /****************************************************************************/
1047 ! return( c - '0' );
1049 if (c >= 'a' && c <= 'f')
1050 ! return( c - 'a' + 10 );
1061 if (c >= 'a' && c <= 'f')
1062 ! return c - 'a' + 10;
1069 b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
1070 if( r < 0 || g < 0 || b < 0 )
1072 ! return( RGB( r, g, b ) );
1075 for( i = 0; i < ARRAY_LENGTH( table ); i++ )
1077 if( STRICMP( name, table[i].name ) == 0 )
1078 ! return( table[i].colour );
1083 b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
1084 if( r < 0 || g < 0 || b < 0 )
1086 ! return RGB(r, g, b);
1089 for( i = 0; i < ARRAY_LENGTH( table ); i++ )
1091 if( STRICMP( name, table[i].name ) == 0 )
1092 ! return table[i].colour;
1098 if (STRICMP(color, name) == 0)
1101 ! return( (guicolor_T) RGB(r,g,b) );
1106 if (STRICMP(color, name) == 0)
1109 ! return (guicolor_T)RGB(r, g, b);
1115 for (i = 0; special_keys[i].key_sym != 0; i++)
1116 if (name[0] == special_keys[i].vim_code0 &&
1117 name[1] == special_keys[i].vim_code1)
1122 /****************************************************************************/
1124 for (i = 0; special_keys[i].key_sym != 0; i++)
1125 if (name[0] == special_keys[i].vim_code0 &&
1126 name[1] == special_keys[i].vim_code1)
1131 /****************************************************************************/
1135 temp_phi = &external_icon;
1137 ! return( temp_phi );
1143 temp_phi = &external_icon;
1151 icon = gui_ph_toolbar_load_icon( full_pathname );
1157 if( menu->iconidx >= 0 &&
1158 ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
1160 ! return( gui_ph_toolbar_images[ menu->iconidx ] );
1168 icon = gui_ph_toolbar_load_icon( full_pathname );
1174 if( menu->iconidx >= 0 &&
1175 ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
1177 ! return gui_ph_toolbar_images[menu->iconidx];
1186 * at least has the bits we're checking for */
1187 if( font_size == info.size &&
1188 style == (info.style & style) )
1189 ! return( (GuiFont) font_tag );
1191 vim_free( font_tag );
1198 * at least has the bits we're checking for */
1199 if( font_size == info.size &&
1200 style == (info.style & style) )
1201 ! return (GuiFont)font_tag;
1203 vim_free( font_tag );
1232 "pcterm12", -1, PHFONT_FIXED, NULL );
1234 if( font_tag == NULL )
1237 gui_mch_free_font( gui.norm_font );
1238 gui.norm_font = font_tag;
1240 "pcterm12", -1, PHFONT_FIXED, NULL );
1242 if( font_tag == NULL )
1245 gui_mch_free_font( gui.norm_font );
1246 gui.norm_font = font_tag;
1250 if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
1251 &font_size ) == FALSE )
1254 font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
1255 if( font_tag == NULL )
1257 vim_free( font_name );
1261 gui_mch_free_font( gui.norm_font );
1264 if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
1265 &font_size ) == FALSE )
1268 font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
1269 if( font_tag == NULL )
1271 vim_free( font_name );
1275 gui_mch_free_font( gui.norm_font );
1278 gui.char_ascent = - extent.ul.y;
1280 vim_free( font_name );
1286 gui.char_ascent = - extent.ul.y;
1288 vim_free( font_name );
1295 gui.char_height = - info.ascender + info.descender + p_linespace;
1296 gui.char_ascent = - info.ascender + p_linespace / 2;
1303 gui.char_height = - info.ascender + info.descender + p_linespace;
1304 gui.char_ascent = - info.ascender + p_linespace / 2;
1312 vim_free( font_name );
1314 if( font_tag != NULL )
1315 ! return( (GuiFont) font_tag );
1319 EMSG2(e_font, vim_font_name );
1324 #if defined(FEAT_EVAL) || defined(PROTO)
1326 vim_free( font_name );
1328 if( font_tag != NULL )
1329 ! return (GuiFont)font_tag;
1333 EMSG2(e_font, vim_font_name );
1338 #if defined(FEAT_EVAL) || defined(PROTO)
1339 *** ../vim-7.3.261/src/version.c 2011-07-27 13:59:12.000000000 +0200
1340 --- src/version.c 2011-07-27 14:08:08.000000000 +0200
1344 { /* Add new patch number below this line */
1350 You know you use Vim too much when you have this alias in your
1351 ~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen)
1353 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
1354 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
1355 \\\ an exciting new programming language -- http://www.Zimbu.org ///
1356 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///