1. 20 Oct, 2013 1 commit
  2. 05 May, 2013 1 commit
  3. 20 Mar, 2013 1 commit
  4. 03 Mar, 2013 1 commit
  5. 21 Jan, 2013 1 commit
  6. 27 Mar, 2012 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Fix tab and wide character handling in editor and menu. · e1bd676b
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/normal/charset.c (grub_unicode_aglomerate_comb): Don't
      	agglomerate control characters with combining marks.
      	(bidi_line_wrap): Allow break on tab.
      	(grub_unicode_get_comb_start): New function.
      	* grub-core/normal/menu_entry.c: Restructure to handle wide characters
      	and tab correctly.
      	* grub-core/normal/menu_text.c (print_entry): Replace \n, \r, \b and \e
      	with a space.
      	* grub-core/normal/term.c (print_ucs4_terminal): New argument
      	fixed_tab_size. All users updated.
      	* include/grub/term.h (GRUB_TERM_TAB_WIDTH): New const.
      	(grub_term_getcharwidth): Handle \t.
      	* include/grub/unicode.h (grub_unicode_glyph_dup): Fix allocation
      	and copy.
      e1bd676b
  7. 19 Feb, 2012 1 commit
  8. 06 Jul, 2011 1 commit
  9. 06 May, 2010 1 commit
  10. 09 Apr, 2010 1 commit
  11. 17 Mar, 2010 1 commit
  12. 16 Mar, 2010 1 commit
  13. 15 Mar, 2010 1 commit
  14. 07 Feb, 2010 1 commit
  15. 28 Dec, 2009 1 commit
  16. 27 Dec, 2009 1 commit
  17. 25 Dec, 2009 3 commits
  18. 24 Dec, 2009 5 commits
  19. 10 Dec, 2009 1 commit
  20. 02 Dec, 2009 1 commit
  21. 14 Nov, 2009 1 commit
  22. 18 Oct, 2009 1 commit
  23. 11 Oct, 2009 2 commits
  24. 10 Oct, 2009 2 commits
  25. 21 Sep, 2009 1 commit
  26. 28 Aug, 2009 1 commit
    • cjwatson's avatar
      2009-08-28 Colin Watson <cjwatson@ubuntu.com> · 4cbe67e5
      cjwatson authored
      2009-08-28  Robert Millan  <rmh.grub@aybabtu.com>
      
      	Add `getkeystatus' terminal method.  Add a new `keystatus' command
      	to query it.
      
      	* include/grub/term.h (GRUB_TERM_STATUS_SHIFT,
      	GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for
      	modifier key bitmasks.
      	(struct grub_term_input): Add `getkeystatus' member.
      	(grub_getkeystatus): Add prototype.
      	* kern/term.c (grub_getkeystatus): New function.
      
      	* include/grub/i386/pc/memory.h
      	(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro.
      	(struct grub_machine_bios_data_area): Define necessary parts of BIOS
      	Data Area layout.
      	* term/i386/pc/console.c (grub_console_getkeystatus): New function.
      	(grub_console_term_input): Set `getkeystatus' member.
      	* term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol
      	constants.
      	(grub_usb_keyboard_getreport): Likewise.
      	(grub_usb_keyboard_checkkey): Likewise.
      	(grub_usb_keyboard_getkeystatus): New function.
      	(grub_usb_keyboard_term): Set `getkeystatus' member.
      
      	* commands/keystatus.c: New file.
      	* conf/common.rmk (pkglib_MODULES): Add keystatus.mod.
      	(keystatus_mod_SOURCES): New variable.
      	(keystatus_mod_CFLAGS): Likewise.
      	(keystatus_mod_LDFLAGS): Likewise.
      	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add
      	commands/keystatus.c.
      	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
      	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
      	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
      	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
      	* DISTLIST: Add commands/keystatus.c.
      4cbe67e5
  27. 11 Jun, 2009 1 commit
  28. 01 Mar, 2009 1 commit
    • bean's avatar
      2009-03-01 Bean <bean123ch@gmail.com> · 71b9f361
      bean authored
      	* commands/terminal.c: Removed.
      
      	* commands/handler.c: New file.
      
      	* include/grub/list.h: Likewise.
      
      	* include/grub/handler.h: Likewise.
      
      	* kern/list.c: Likewise.
      
      	* kern/handler.c: Likewise.
      
      	* kern/term.h: Include header file <grub/handler.h>.
      	(grub_term_input): Move next field to the beginning.
      	(grub_term_output): Likewise.
      	(grub_term_input_class): New variable.
      	(grub_term_output_class): Likewise.
      	(grub_term_register_input): Changed to inline function.
      	(grub_term_register_output): Likewise.
      	(grub_term_unregister_input): Likewise.
      	(grub_term_unregister_output): Likewise.
      	(grub_term_set_current_input): Likewise.
      	(grub_term_set_current_output): Likewise.
      	(grub_term_get_current_input): Likewise.
      	(grub_term_get_current_output): Likewise.
      	(grub_term_iterate_input): Removed.
      	(grub_term_iterate_output): Likewise.
      
      	* kern/term.c (grub_term_list_input): Removed.
      	(grub_term_list_output): Likewise.
      	(grub_term_input_class): New variable.
      	(grub_term_output_class): Likewise.
      	(grub_cur_term_input): Change varaible as macro.
      	(grub_cur_term_output): Likewise.
      	(grub_term_register_input): Removed.
      	(grub_term_register_output): Likewise.
      	(grub_term_unregister_input): Likewise.
      	(grub_term_unregister_output): Likewise.
      	(grub_term_set_current_input): Likewise.
      	(grub_term_set_current_output): Likewise.
      	(grub_term_iterate_input): Likewise.
      	(grub_term_iterate_output): Likewise.
      	(grub_term_get_current_input): Likewise.
      	(grub_term_get_current_output): Likewise.
      
      	* util/grub-editenv.c: Include header file <grub/handler.h>.
      	(grub_term_get_current_input): Removed.
      	(grub_term_get_current_output): Likewise.
      	(grub_term_input_class): New variable.
      	(grub_term_outout_class): Likewise.
      
      	* util/grub-fstest.c (grub_term_get_current_input): Removed.
      	(grub_term_get_current_output): Likewise.
      	(grub_term_input_class): New variable.
      	(grub_term_outout_class): Likewise.
      
      	* util/grub-probe.c (grub_term_get_current_input): Removed.
      	(grub_term_get_current_output): Likewise.
      	(grub_term_input_class): New variable.
      	(grub_term_outout_class): Likewise.
      
      	* util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
      	(grub_term_get_current_output): Likewise.
      	(grub_term_input_class): New variable.
      	(grub_term_outout_class): Likewise.
      
      	* conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
      	(terminal_mod_SOURCES): Likewise.
      	(terminal_mod_CFLAGS): Likewise.
      	(terminal_mod_LDFLAGS): Likewise.
      
      	* conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
      	handler.c.
      	(kernel_img_SOURCES): Add list.c and handler.c.
      	(kernel_img_HEADERS): Add list.h and handler.h.
      
      	* conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
      	handler.c.
      	(kernel_mod_SOURCES): Add list.c and handler.c.
      	(kernel_mod_HEADERS): Add list.h and handler.h.
      
      	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
      	handler.c.
      	(kernel_elf_SOURCES): Add list.c and handler.c.
      	(kernel_elf_HEADERS): Add list.h and handler.h.
      
      	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
      	handler.c.
      	(kernel_elf_SOURCES): Add list.c and handler.c.
      	(kernel_elf_HEADERS): Add list.h and handler.h.
      
      	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
      	handler.c.
      	(kernel_mod_SOURCES): Add list.c and handler.c.
      	(kernel_mod_HEADERS): Add list.h and handler.h.
      
      	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
      	handler.c.
      	(kernel_elf_SOURCES): Add list.c and handler.c.
      	(kernel_elf_HEADERS): Add list.h and handler.h.
      71b9f361
  29. 02 Jan, 2009 1 commit
    • chaac's avatar
      2009-01-02 Colin D Bennett <colin@gibibit.com> · 1e901a75
      chaac authored
      	New font engine.
      	
      	Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
      	build system and fixed gfxterm.c to work with different	sized fonts.
      
      	* configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
      	
      	* configure: Re-generated.
      	
      	* DISTLIST: Removed font/manager.c.
      	Added font/font.c.
      	Added font/font_cmd.c.
      	
      	* Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF.  Added Font tool
      	compilation.
      	
      	* include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype.  Changed users.
      	
      	* kern/misc.c (grub_utf8_to_ucs4): Changed prototype. 
      
      	* kern/term.c: Changed users of grub_utf8_to_ucs4.
      	
      	* normal/menu.c: Likewise.
      		
      	* conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
      	(font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
      	
      	* include/grub/font.h: Replaced with new file.
      	
      	* include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
      	(GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
      	(GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
      	(GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
      	(grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
      	(grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha, 
      	fg_red, fg_green, fg_blue, fg_alpha.
      	(grub_video_adapter): Removed blit_glyph.
      	(grub_video_blit_glyph): Removed.	
      	
      	* font/manager.c: Removed file.
      	
      	* font/font.c: New file. 
      	
      	* font/font_cmd.c: Likewise.
      	
      	* video/video.c (grub_video_blit_glyph): Removed.
      	
      	* video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
      	(grub_video_vbe_map_rgba): Likewise.
      	(grub_video_vbe_unmap_color_int): Likewise.
      	(grub_video_vbe_blit_glyph): Removed.
      	(grub_video_vbe_adapter): Removed blit_glyph.
      	
      	* video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
      	(get_pixel): Likewise.
      	(set_pixel): Likewise. 
      	
      	* commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
      	
      	* term/gfxterm.c: Adapted to new font engine.
      	
      	* term/i386/pc/vesafb.c: Marked as deprecated.  Made it compile.
      	
      	* term/i386/pc/vga.c: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
      	
      	* util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
      
      	* util/grub.d/00_header.in: Changed to use new loadfont command.
      	
      	* util/grub-mkconfig_lib.in: Changed font extension.
      1e901a75
  30. 12 Nov, 2008 1 commit
    • robertmh's avatar
      2008-11-12 Robert Millan <rmh@aybabtu.com> · 761ca975
      robertmh authored
              Fix a regression introduced by the at_keyboard.mod split.  Because
              some terminals are default on some platforms and non-default on
              others, the first terminal being registered determines which is
              going to be default.
      
              * kern/term.c (grub_term_register_input): If this is the first
              terminal being registered, set it as the current one.
              (grub_term_register_output): Likewise.
      
              * term/efi/console.c (grub_console_init): Do not call
              grub_term_set_current_output() or grub_term_set_current_input().
              * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
              * term/i386/pc/console.c (grub_console_init): Likewise.
              (grub_console_fini): Do not call grub_term_set_current_input()
              (but leave grub_term_set_current_output() to restore text mode).
      761ca975
  31. 08 Nov, 2008 1 commit
    • robertmh's avatar
      2008-11-07 Robert Millan <rmh@aybabtu.com> · 651c29b7
      robertmh authored
                  Modularize at_keyboard.mod:
      
                  * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
                  (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
                  (at_keyboard_mod_LDFLAGS): New variables.
      
                  Actual terminal split:
      
                  * include/grub/term.h (struct grub_term): Split in ...
                  (struct grub_term_input): ... this, and ...
                  (struct grub_term_output): ... this.  Update all users.
                  (grub_term_set_current): Split in ...
                  (grub_term_set_current_input): ... this, and ...
                  (grub_term_set_current_output): ... this.
                  (grub_term_get_current): Split in ...
                  (grub_term_get_current_input): ... this, and ...
                  (grub_term_get_current_output): ... this.
                  (grub_term_register): Split in ...
                  (grub_term_register_input): ... this, and ...
                  (grub_term_register_output): ... this.
                  (grub_term_unregister): Split in ...
                  (grub_term_unregister_input): ... this, and ...
                  (grub_term_unregister_output): ... this.
                  (grub_term_iterate): Split in ...
                  (grub_term_iterate_input): ... this, and ...
                  (grub_term_iterate_output): ... this.
      
                  * kern/term.c (grub_term_list): Split in ...
                  (grub_term_list_input): ... this, and ...
                  (grub_term_list_output): ... this.  Update all users.
                  (grub_cur_term): Split in ...
                  (grub_cur_term_input): ... this, and ...
                  (grub_cur_term_output): ... this.  Update all users.
                  (grub_term_set_current): Split in ...
                  (grub_term_set_current_input): ... this, and ...
                  (grub_term_set_current_output): ... this.
                  (grub_term_get_current): Split in ...
                  (grub_term_get_current_input): ... this, and ...
                  (grub_term_get_current_output): ... this.
                  (grub_term_register): Split in ...
                  (grub_term_register_input): ... this, and ...
                  (grub_term_register_output): ... this.
                  (grub_term_unregister): Split in ...
                  (grub_term_unregister_input): ... this, and ...
                  (grub_term_unregister_output): ... this.
                  (grub_term_iterate): Split in ...
                  (grub_term_iterate_input): ... this, and ...
                  (grub_term_iterate_output): ... this.
      
                  * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
                  a check for input and one for output (and only attempt to get keys
                  from user when input works).
      
                  * util/grub-probe.c (grub_term_get_current): Split in ...
                  (grub_term_get_current_input): ... this, and ...
                  (grub_term_get_current_output): ... this.
                  * util/grub-fstest.c: Likewise.
                  * util/i386/pc/grub-setup.c: Likewise.
                  * util/grub-editenv.c: Likewise.
      
                  Portability adjustments:
      
                  * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
                  `term/i386/pc/at_keyboard.c'.
                  * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
                  grub_keyboard_controller_init() (now handled by terminal .init).
                  * kern/i386/coreboot/init.c (grub_machine_init): Add call to
                  grub_at_keyboard_init().
                  * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
                  (grub_console_checkkey, grub_console_getkey): Remove (now provided by
                  at_keyboard.mod via input terminal interface).
                  * include/grub/i386/coreboot/console.h: Convert into a stub for
                  `<grub/i386/pc/console.h>'.
      
                  Migrate full terminals to new API:
      
                  * term/efi/console.c (grub_console_term): Split into ...
                  (grub_console_term_input): ... this, and ...
                  (grub_console_term_output): ... this.  Update all users.
                  * term/ieee1275/ofconsole.c: Remove __i386__ hack.
                  (grub_ofconsole_init): Split into ...
                  (grub_ofconsole_init_input): ... this, and ...
                  (grub_ofconsole_init_output): ... this.
                  (grub_ofconsole_term): Split into ...
                  (grub_ofconsole_term_input): ... this, and ...
                  (grub_ofconsole_term_output): ... this.  Update all users.
                  * term/i386/pc/serial.c (grub_serial_term): Split into ...
                  (grub_serial_term_input): ... this, and ...
                  (grub_serial_term_output): ... this.  Update all users.
                  * term/i386/pc/console.c (grub_console_term): Split into ...
                  (grub_console_term_input): ... this, and ...
                  (grub_console_term_output): ... this.  Update all users.
                  (grub_console_term_input): Only enable it on PC/BIOS platform.
                  (grub_console_init): Remove grub_keyboard_controller_init() call.
      
                  Migrate input terminals to new API:
      
                  * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
                  `i386' and `i386/pc' to enable build on x86_64 (this driver is
                  i386-specific anyway).
                  (grub_console_checkkey): Rename to ...
                  (grub_at_keyboard_checkkey): ... this.  Static-ize.  Update all
                  users.
                  (grub_keyboard_controller_orig): New variable.
                  (grub_console_getkey): Rename to ...
                  (grub_at_keyboard_getkey): ... this.  Static-ize.  Update all
                  users.
                  (grub_keyboard_controller_init): Static-ize.  Save original
                  controller value so that it can be restored ...
                  (grub_keyboard_controller_fini): ... here (new function).
                  (grub_at_keyboard_term): New structure.
                  (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
                  functions.
      
                  Migrate output terminals to new API:
      
                  * term/i386/pc/vga.c (grub_vga_term): Change type to
                  `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
                  members.  Update all users.
                  * term/gfxterm.c (grub_video_term): Change type to
                  `struct  grub_term_output'.  Remove `.checkkey' and `.getkey'
                  members.  Update all users.
                  * include/grub/i386/pc/console.h (grub_console_checkkey)
                  (grub_console_getkey): Do not export (no longer needed by gfxterm,
                  etc).
      
                  Migrate `terminal' command and userland tools to new API:
      
                  * commands/terminal.c (grub_cmd_terminal): Split into ...
                  (grub_cmd_terminal_input): ... this, and ...
                  (grub_cmd_terminal_output): ... this.
                  (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
                  `terminal_input' and `terminal_output'.
                  * util/grub.d/00_header.in: Adjust `terminal' calls to new
                  `terminal_input' / `terminal_output' API.
                  * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
                  ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
                  provided ${GRUB_TERMINAL}, convert it).
      651c29b7
  32. 25 Dec, 2007 1 commit
    • robertmh's avatar
      2007-12-25 Robert Millan <rmh@aybabtu.com> · 533110ad
      robertmh authored
      	* include/grub/term.h (struct grub_term): Add `getcolor' function.
      	(grub_getcolor): New function.
      
      	* kern/term.c (grub_getcolor): New function.
      	* normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
      	(GRUB_COLOR_MENU_HIGHLIGHT): New macro.
      	(print_entry): Set normal and highlight colors to
      	`GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
      	respectively, before printing and restore them to old
      	values afterwards.
      	(grub_menu_init_page): Likewise.  Fill an additional colored space
      	that would otherwise be left blank.
      
      	* term/efi/console.c (grub_console_getcolor): New function.
      	(struct grub_console_term.getcolor): New variable.
      	* term/i386/pc/console.c (grub_console_getcolor): New function.
      	(struct grub_console_term.getcolor): New variable.
      	* term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
      	(struct grub_console_term.getcolor): New variable.
      
      	* term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
      	(struct grub_console_term.setcolor): Remove variable.
      	* term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
      	(struct grub_console_term.setcolor): Remove variable.
      	* term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
      	(struct grub_console_term.setcolor): Remove variable.
      	* term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
      	(struct grub_console_term.setcolor): Remove variable.
      533110ad