From 17cbec16dc13764786b55cd5131cf7c7425a47a0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Dec 2016 12:24:02 -0600 Subject: [PATCH 01/22] STM32 SDIO: Remove warning about unused variable in STM32 F4 builds. --- arch/arm/src/stm32/stm32_sdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/stm32/stm32_sdio.c b/arch/arm/src/stm32/stm32_sdio.c index 860eff8b9c..58071e84f4 100644 --- a/arch/arm/src/stm32/stm32_sdio.c +++ b/arch/arm/src/stm32/stm32_sdio.c @@ -2574,11 +2574,11 @@ static bool stm32_dmasupported(FAR struct sdio_dev_s *dev) static int stm32_dmapreflight(FAR struct sdio_dev_s *dev, FAR const uint8_t *buffer, size_t buflen) { +#if !defined(CONFIG_STM32_STM32F40XX) struct stm32_dev_s *priv = (struct stm32_dev_s *)dev; DEBUGASSERT(priv != NULL && buffer != NULL && buflen > 0); -#if !defined(CONFIG_STM32_STM32F40XX) /* Wide bus operation is required for DMA */ if (!priv->widebus) From 5bd61477028f6a9c835963ca2665f1c0f48b0342 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Dec 2016 13:20:48 -0600 Subject: [PATCH 02/22] Update README --- README.txt | 104 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 95 insertions(+), 9 deletions(-) diff --git a/README.txt b/README.txt index 89a544880e..184060dc0a 100644 --- a/README.txt +++ b/README.txt @@ -2,7 +2,9 @@ README ^^^^^^ o Installation + - Environments - Installing Cygwin + - Ubuntu Bash under Windows 10 - Download and Unpack - Semi-Optional apps/ Package - Installation Directories with Spaces in the Path @@ -37,18 +39,29 @@ README INSTALLATION ^^^^^^^^^^^^ +Environments +------------ + NuttX may be installed and built on a Linux system or on a Windows - system if Cygwin is installed. The MSYS environment is an option - to Cygwin on the Windows platform. However, I have little experience - that that configuration and it will not be discussed in this README - file. + system if Cygwin is installed. Instructions for installation of + Cygwin on Windows system are provided in the following paragraph. - Instructions for installation of Cygwin on Windows system are provided - in the following paragraph. + Other Windows options are - NuttX can also be installed and built on a native Windows system, but - with some potential tool-related issues (see the discussion "Native - Windows Build" below). + - The MSYS environment. However, I have little experience that + configuration and it will not be discussed in this README file. + See http://www.mingw.org/wiki/MSYS if you are interested in + using MSYS. People report to me that they have used MSYS + successfully. + + - Ubuntu/bash shell under Windows 10. This is a new option under + Windows 10. I am still looking into this option and do you yet + have much to say about. As I learn more, I will update the + section "Ubuntu Bash under Windows 10" below. + + - NuttX can also be installed and built on a native Windows system, but + with some potential tool-related issues (see the discussion "Native + Windows Build" below). Installing Cygwin ----------------- @@ -95,6 +108,79 @@ Installing Cygwin about 5GiB. The server I selected was also very slow so it took over a day to do the whole install! +Ubuntu Bash under Windows 10 +---------------------------- + + A better version of a command-line only Ubuntu under Windows 10 (beta) + has recently been made available from Microsoft. I am tinkering with + that but do not yet have much to say about it. + + Installation + ------------ + Installation instructions abound on the Internet complete with screen + shots. I will attempt to duplicate those instructions in full here. + Here are the simplified installation steps: + + - Open "Settings". + - Click on "Update & security". + - Click on "For Developers". + - Under "Use developer features", select the "Developer mode" option to + setup the environment to install Bash. + - A message box should pop up. Click "Yes" to turn on developer mode. + - After the necessary components install, you'll need to restart your + computer. + + Once your computer reboots: + + - Open "Control Panel". + - Click on "Programs". + - Click on "Turn Windows features on or off". + - A list of features will pop up, check the "Windows Subsystem for Linux + (beta)" option. + - Click OK. + - Once the components installed on your computer, click the "Restart + now" button to complete the task. + + After your computer restarts, you will notice that Bash will not appear in + the "Recently added" list of apps, this is because Bash isn't actually + installed yet. Now that you have setup the necessary components, use the + following steps to complete the installation of Bash: + + - Open "Start", do a search for bash.exe, and press "Enter". + - On the command prompt, type y and press Enter to download and install + Bash from the Windows Store. This will take awhile. + - Then you'll need to create a default UNIX user account. This account + doesn't have to be the same as your Windows account. Enter the + username in the required field and press Enter (you can't use the + username "admin"). + - Close the "bash.exe" command prompt. + + Now that you completed the installation and setup, you can open the Bash + tool from the Start menu like you would with any other app. + + Accessing Windows Files + ----------------------- + Drivers will be mounted under "/mnt" so for example "C:\Program Files" + appears at "/mnt/c/Program Files". This is as opposed to Cgwin where + the same directory would appear at "/cygdrive/c/Program Files". + + With these differences (perhaps a few other Windows quirks) the Ubuntu + install works just like Ubuntu running natively on your PC. Currently + there is not host configuration for Bash running under Windows 10 but + setting the host to either Linux or Cygwin should work fine. + + Install Linux Software. + ----------------------- + Use "sudo apt-get install " + + Integrating with Windows Tools + ------------------------------ + If you want to integrate with Windows native tools, then you will need + deal with the same kind of craziness as with integrating Cygwin with + native toolchains. If you set the host PC to Cygwin in this case, then + the NuttX build system should deal with that craziness for you. + + Download and Unpack ------------------- From 911209eb454fc76628a84e71d09111b31ead4bd6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Dec 2016 14:00:44 -0600 Subject: [PATCH 03/22] Update README --- README.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.txt b/README.txt index 184060dc0a..d1cfe35698 100644 --- a/README.txt +++ b/README.txt @@ -1,10 +1,10 @@ README ^^^^^^ - o Installation - - Environments + o Environments - Installing Cygwin - Ubuntu Bash under Windows 10 + o Installation - Download and Unpack - Semi-Optional apps/ Package - Installation Directories with Spaces in the Path @@ -36,12 +36,9 @@ README - Window Native Toolchain Issues o Documentation -INSTALLATION +ENVIRONMENTS ^^^^^^^^^^^^ -Environments ------------- - NuttX may be installed and built on a Linux system or on a Windows system if Cygwin is installed. Instructions for installation of Cygwin on Windows system are provided in the following paragraph. @@ -55,7 +52,7 @@ Environments successfully. - Ubuntu/bash shell under Windows 10. This is a new option under - Windows 10. I am still looking into this option and do you yet + Windows 10. I am still looking into this option and do not yet have much to say about. As I learn more, I will update the section "Ubuntu Bash under Windows 10" below. @@ -180,6 +177,8 @@ Ubuntu Bash under Windows 10 native toolchains. If you set the host PC to Cygwin in this case, then the NuttX build system should deal with that craziness for you. +INSTALLATION +^^^^^^^^^^^^ Download and Unpack ------------------- From 04557a119828ea42c55255411bbedde1016fea33 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Dec 2016 14:47:03 -0600 Subject: [PATCH 04/22] Eliminate a warning --- sched/sched/sched_unlock.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sched/sched/sched_unlock.c b/sched/sched/sched_unlock.c index 885e0c778c..d22a4b48bd 100644 --- a/sched/sched/sched_unlock.c +++ b/sched/sched/sched_unlock.c @@ -67,10 +67,14 @@ int sched_unlock(void) { FAR struct tcb_s *rtcb = this_task(); +#ifdef CONFIG_SMP int cpu; cpu = this_cpu(); rtcb = current_task(cpu); +#else + rtcb = this_task(); +#endif /* Check for some special cases: (1) rtcb may be NULL only during * early boot-up phases, and (2) sched_unlock() should have no From abcb176641518211d8c55729eb3496c43031c5b3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 31 Dec 2016 15:43:07 -0600 Subject: [PATCH 05/22] Trivial change to README --- README.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.txt b/README.txt index d1cfe35698..f9c3b2198e 100644 --- a/README.txt +++ b/README.txt @@ -45,6 +45,8 @@ ENVIRONMENTS Other Windows options are + - An installation Linux on a virtual machine in Windows. + - The MSYS environment. However, I have little experience that configuration and it will not be discussed in this README file. See http://www.mingw.org/wiki/MSYS if you are interested in @@ -58,7 +60,7 @@ ENVIRONMENTS - NuttX can also be installed and built on a native Windows system, but with some potential tool-related issues (see the discussion "Native - Windows Build" below). + Windows Build" under "Building NuttX" below). Installing Cygwin ----------------- From c6d621fca5318af3b66baff660358a8adb8e8b50 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 08:35:49 -0600 Subject: [PATCH 06/22] Update README.txt file --- README.txt | 53 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/README.txt b/README.txt index f9c3b2198e..3f2897a578 100644 --- a/README.txt +++ b/README.txt @@ -39,14 +39,17 @@ README ENVIRONMENTS ^^^^^^^^^^^^ - NuttX may be installed and built on a Linux system or on a Windows - system if Cygwin is installed. Instructions for installation of - Cygwin on Windows system are provided in the following paragraph. - - Other Windows options are + NuttX requires a POSIX development environment such as you would find uder + Linux or OSX. NuttX may be also be installed and built on Windows system + if you also provde such a POSIX develoment environment. Options for a + POSIX development environment under Windows include: - An installation Linux on a virtual machine in Windows. + - The Cygwin environment. Instructions for installation of Cygwin on a + Windows system are provided in the following paragraph, "Installing + Cygwin". + - The MSYS environment. However, I have little experience that configuration and it will not be discussed in this README file. See http://www.mingw.org/wiki/MSYS if you are interested in @@ -54,9 +57,7 @@ ENVIRONMENTS successfully. - Ubuntu/bash shell under Windows 10. This is a new option under - Windows 10. I am still looking into this option and do not yet - have much to say about. As I learn more, I will update the - section "Ubuntu Bash under Windows 10" below. + Windows 10. See the section "Ubuntu Bash under Windows 10" below. - NuttX can also be installed and built on a native Windows system, but with some potential tool-related issues (see the discussion "Native @@ -111,8 +112,7 @@ Ubuntu Bash under Windows 10 ---------------------------- A better version of a command-line only Ubuntu under Windows 10 (beta) - has recently been made available from Microsoft. I am tinkering with - that but do not yet have much to say about it. + has recently been made available from Microsoft. Installation ------------ @@ -159,29 +159,47 @@ Ubuntu Bash under Windows 10 Accessing Windows Files ----------------------- - Drivers will be mounted under "/mnt" so for example "C:\Program Files" + File sysems will be mounted under "/mnt" so for example "C:\Program Files" appears at "/mnt/c/Program Files". This is as opposed to Cgwin where the same directory would appear at "/cygdrive/c/Program Files". With these differences (perhaps a few other Windows quirks) the Ubuntu install works just like Ubuntu running natively on your PC. Currently - there is not host configuration for Bash running under Windows 10 but - setting the host to either Linux or Cygwin should work fine. + there is no host configuration for Bash running under Windows 10 but + setting the host to either Linux or Cygwin in your configuratino file + should work fine. Install Linux Software. ----------------------- - Use "sudo apt-get install " + Use "sudo apt-get install ". As examples, this is how + you would get GIT: + + $ sudo apt-get install git + + This will get you an ARM compiler: + + $ sudo apt-get install gcc-arm-none-eabi + + NOTE: That is just an example. I am not sure if apt-get will give you a + current or usable compiler. You should carefully select your toolchain + for the needs of your project.] Integrating with Windows Tools ------------------------------ If you want to integrate with Windows native tools, then you will need deal with the same kind of craziness as with integrating Cygwin with native toolchains. If you set the host PC to Cygwin in this case, then - the NuttX build system should deal with that craziness for you. + the NuttX build system should deal with that craziness for you. See the + section "Cygwin Build Problems" below. INSTALLATION ^^^^^^^^^^^^ + There are two ways to get NuttX: You may download released, stable + tarballs from wither the Bitbucket or Sourceforge download locations. + Or you may get NuttX by cloning the Bitbucket GIT repositories. Let's + consider the released tarballs first: + Download and Unpack ------------------- @@ -192,6 +210,11 @@ Download and Unpack match the various instructions in the documentation and some scripts in the source tree. + Download locations: + + https://bitbucket.org/nuttx/nuttx/downloads + https://sourceforge.net/projects/nuttx/files/nuttx/ + Semi-Optional apps/ Package --------------------------- From 9b4685c9a311689e0b8e18fdd3e2fe4596887cbb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 09:33:06 -0600 Subject: [PATCH 07/22] Update README.txt file --- README.txt | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 3f2897a578..d2e1fd55f9 100644 --- a/README.txt +++ b/README.txt @@ -48,7 +48,9 @@ ENVIRONMENTS - The Cygwin environment. Instructions for installation of Cygwin on a Windows system are provided in the following paragraph, "Installing - Cygwin". + Cygwin". Cygwin is a very convenient environment, especially if you + need to integrate with Windows tools. But the compile times are + very slow. - The MSYS environment. However, I have little experience that configuration and it will not be discussed in this README file. @@ -58,6 +60,8 @@ ENVIRONMENTS - Ubuntu/bash shell under Windows 10. This is a new option under Windows 10. See the section "Ubuntu Bash under Windows 10" below. + This is an improvement over Cygwin if your concern is compile time; + its build performance is comparable to native Linux. - NuttX can also be installed and built on a native Windows system, but with some potential tool-related issues (see the discussion "Native @@ -176,7 +180,11 @@ Ubuntu Bash under Windows 10 $ sudo apt-get install git - This will get you an ARM compiler: + This will get you a compiler for your host PC: + + $ sudo apt-get install gcc + + This will get you an ARM compiler for your target: $ sudo apt-get install gcc-arm-none-eabi @@ -184,6 +192,13 @@ Ubuntu Bash under Windows 10 current or usable compiler. You should carefully select your toolchain for the needs of your project.] + You will also need to the get the kconfig-frontends configuration as + described below under "NuttX Configuration tool". In order build the + kconfig-frontends configuration tool you will also need: make, gperf, + flex, bison, and libncurses-dev. + + That is enough to do a basic NuttX build. + Integrating with Windows Tools ------------------------------ If you want to integrate with Windows native tools, then you will need From 37ce36d51f93016fdcd98c5ef4075df764b88c5d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 09:44:36 -0600 Subject: [PATCH 08/22] Another small update to the top-level README.txt file --- README.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index d2e1fd55f9..428031d43d 100644 --- a/README.txt +++ b/README.txt @@ -161,8 +161,8 @@ Ubuntu Bash under Windows 10 Now that you completed the installation and setup, you can open the Bash tool from the Start menu like you would with any other app. - Accessing Windows Files - ----------------------- + Accessing Windows Files from Ubuntu + ----------------------------------- File sysems will be mounted under "/mnt" so for example "C:\Program Files" appears at "/mnt/c/Program Files". This is as opposed to Cgwin where the same directory would appear at "/cygdrive/c/Program Files". @@ -173,6 +173,17 @@ Ubuntu Bash under Windows 10 setting the host to either Linux or Cygwin in your configuratino file should work fine. + Accessing Ubuntu Files From Windows + ----------------------------------- + In Ubuntu Userspace for Windows, the Ubuntu file system root directory is + at: + + %localappdata%\lxss\rootfs + + Or + + C:\Users\Username\AppData\Local\lxss\rootfs + Install Linux Software. ----------------------- Use "sudo apt-get install ". As examples, this is how From eeab108a6c2e3c149c53eb0bb9812137631f5e2c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 10:13:02 -0600 Subject: [PATCH 09/22] Yet another update to the top-level README.txt file --- README.txt | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/README.txt b/README.txt index 428031d43d..201bc35ed0 100644 --- a/README.txt +++ b/README.txt @@ -48,24 +48,31 @@ ENVIRONMENTS - The Cygwin environment. Instructions for installation of Cygwin on a Windows system are provided in the following paragraph, "Installing - Cygwin". Cygwin is a very convenient environment, especially if you - need to integrate with Windows tools. But the compile times are - very slow. - - - The MSYS environment. However, I have little experience that - configuration and it will not be discussed in this README file. - See http://www.mingw.org/wiki/MSYS if you are interested in - using MSYS. People report to me that they have used MSYS - successfully. + Cygwin". Cygwin is a mature, well-tested, and very convenient + environment. It is especially expecially convenient if you need to + integrate with Windows tools. Downsides are that the installation + time is very long and the compile times are very slow. - Ubuntu/bash shell under Windows 10. This is a new option under Windows 10. See the section "Ubuntu Bash under Windows 10" below. This is an improvement over Cygwin if your concern is compile time; - its build performance is comparable to native Linux. + its build performance is comparable to native Linux. It also installs + in a tiny fraction of the time as Cygwin, perhaps 20 minutes for + the basic Ubuntu install (vs. more than a day for the complete Cygwin + install). + + - The MSYS environment. I have no experience using the MSYS environment + and that configuration will not be discussed in this README file. + See http://www.mingw.org/wiki/MSYS if you are interested in + using MSYS. People report to me that they have used MSYS + successfully. I suppose that the advantages of the MSYS environemnt + is that it is closer to a native Windows environment and uses only a + minimal of add-on POSIX-ish tools. - NuttX can also be installed and built on a native Windows system, but with some potential tool-related issues (see the discussion "Native - Windows Build" under "Building NuttX" below). + Windows Build" under "Building NuttX" below). GNUWin32 is used to + provide compatible native windows tools. Installing Cygwin ----------------- @@ -101,6 +108,9 @@ Installing Cygwin "Publishing". You can try omitting KDE, Gnome, GTK, and other graphics packages if you don't plan to use them. + Perhaps a minimum set would be those packages listed below for the + "Ubuntu Bash under Windows 10" installation? + After installing Cygwin, you will get lots of links for installed tools and shells. I use the RXVT native shell. It is fast and reliable and does not require you to run the Cygwin X server (which is neither From 34be3e7c3c5885dd657712f92965f52214105d78 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 15:34:23 -0600 Subject: [PATCH 10/22] Add configuration support for builds with Ubuntu under Windows 10 --- Kconfig | 8 +++++++- README.txt | 13 +++++-------- arch/arm/src/arm/Toolchain.defs | 8 +++++++- arch/arm/src/armv6-m/Toolchain.defs | 12 +++++++++++- arch/arm/src/armv7-a/Toolchain.defs | 8 +++++++- arch/arm/src/armv7-m/Toolchain.defs | 14 +++++++++++++- arch/arm/src/armv7-r/Toolchain.defs | 8 +++++++- arch/avr/src/avr/Toolchain.defs | 4 +++- arch/avr/src/avr32/Toolchain.defs | 4 +++- arch/mips/src/mips32/Toolchain.defs | 10 +++++++++- arch/misoc/src/lm32/Toolchain.defs | 4 +++- arch/sim/Kconfig | 2 +- arch/z80/src/ez80/Toolchain.defs | 4 +++- arch/z80/src/z180/Toolchain.defs | 4 +++- arch/z80/src/z8/Toolchain.defs | 4 +++- arch/z80/src/z80/Toolchain.defs | 4 +++- tools/sethost.sh | 25 +++++++++++++++++++------ tools/testbuild.sh | 22 +++++++++++++++++----- 18 files changed, 124 insertions(+), 34 deletions(-) diff --git a/Kconfig b/Kconfig index bf1f1c7b4b..4ea2ee47af 100644 --- a/Kconfig +++ b/Kconfig @@ -60,7 +60,13 @@ config WINDOWS_CYGWIN bool "Cygwin" ---help--- Build natively in a Cygwin environment with POSIX style paths (like - /cygdrive/c/cgywin/home) + /cygdrive/c/Program Files) + +config WINDOWS_UBUNTU + bool "Ubuntu under Windows10" + ---help--- + Build natively in an Unbuntu shell under Windoes 10 environment with + POSIX style paths (like /mnt/c/Program Files) config WINDOWS_MSYS bool "MSYS" diff --git a/README.txt b/README.txt index 201bc35ed0..24838ee4bd 100644 --- a/README.txt +++ b/README.txt @@ -67,7 +67,7 @@ ENVIRONMENTS using MSYS. People report to me that they have used MSYS successfully. I suppose that the advantages of the MSYS environemnt is that it is closer to a native Windows environment and uses only a - minimal of add-on POSIX-ish tools. + minimal of add-on POSIX-land tools. - NuttX can also be installed and built on a native Windows system, but with some potential tool-related issues (see the discussion "Native @@ -178,10 +178,7 @@ Ubuntu Bash under Windows 10 the same directory would appear at "/cygdrive/c/Program Files". With these differences (perhaps a few other Windows quirks) the Ubuntu - install works just like Ubuntu running natively on your PC. Currently - there is no host configuration for Bash running under Windows 10 but - setting the host to either Linux or Cygwin in your configuratino file - should work fine. + install works just like Ubuntu running natively on your PC. Accessing Ubuntu Files From Windows ----------------------------------- @@ -224,9 +221,9 @@ Ubuntu Bash under Windows 10 ------------------------------ If you want to integrate with Windows native tools, then you will need deal with the same kind of craziness as with integrating Cygwin with - native toolchains. If you set the host PC to Cygwin in this case, then - the NuttX build system should deal with that craziness for you. See the - section "Cygwin Build Problems" below. + native toolchains. But when you select a Windows native toolchain, the + NuttX build system should deal with most that craziness for you. But not + all, see the section "Cygwin Build Problems" below. INSTALLATION ^^^^^^^^^^^^ diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs index d713e92e5d..199e118936 100644 --- a/arch/arm/src/arm/Toolchain.defs +++ b/arch/arm/src/arm/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv/Toolchain.defs # -# Copyright (C) 2012-2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2014, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -129,6 +129,8 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),CODESOURCERYW) MAXOPTIMIZATION ?= -O2 ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -139,6 +141,8 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= arm-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -158,5 +162,7 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),GNU_EABIW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs index dfe5b9c9fd..b3b1d3d7c0 100644 --- a/arch/arm/src/armv6-m/Toolchain.defs +++ b/arch/arm/src/armv6-m/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv6-m/Toolchain.defs # -# Copyright (C) 2013 Gregory Nutt. All rights reserved. +# Copyright (C) 2013, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -107,6 +107,8 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),ATOLLIC) ARCROSSDEV ?= arm-atollic-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -134,6 +136,8 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CODEREDW) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -153,6 +157,8 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CODESOURCERYW) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -164,6 +170,8 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= arm-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -181,6 +189,8 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABIW) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs index 8ee6efdf2a..329abba970 100644 --- a/arch/arm/src/armv7-a/Toolchain.defs +++ b/arch/arm/src/armv7-a/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv7-a/Toolchain.defs # -# Copyright (C) 2013 Gregory Nutt. All rights reserved. +# Copyright (C) 2013, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -129,6 +129,8 @@ ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),CODESOURCERYW) MAXOPTIMIZATION ?= -O2 ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -139,6 +141,8 @@ ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= $(TARGET_ARCH)-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -158,5 +162,7 @@ ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),GNU_EABIW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index 8cfcaa3e1d..262f79c4de 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv7-m/Toolchain.defs # -# Copyright (C) 2012-2013, 2015-2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2013, 2015-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -167,6 +167,8 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),ATOLLIC) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -203,6 +205,8 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CODEREDW) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -224,6 +228,8 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CODESOURCERYW) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -234,6 +240,8 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) endif @@ -256,6 +264,8 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABIW) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -266,6 +276,8 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),RAISONANCE) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) endif diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs index f1eb9db817..09aab78440 100644 --- a/arch/arm/src/armv7-r/Toolchain.defs +++ b/arch/arm/src/armv7-r/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv7-r/Toolchain.defs # -# Copyright (C) 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -129,6 +129,8 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),CODESOURCERYW) MAXOPTIMIZATION ?= -O2 ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -139,6 +141,8 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= $(TARGET_ARCH)-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif @@ -158,5 +162,7 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),GNU_EABIW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif diff --git a/arch/avr/src/avr/Toolchain.defs b/arch/avr/src/avr/Toolchain.defs index 7503086fb0..eea11e441a 100644 --- a/arch/avr/src/avr/Toolchain.defs +++ b/arch/avr/src/avr/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/avr/src/avr/Toolchain.defs # -# Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2013, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -134,6 +134,8 @@ ifeq ($(_WINAVR),1) CROSSDEV ?= avr- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif MAXOPTIMIZATION ?= -O2 LDFLAGS += -nostartfiles -nodefaultlibs diff --git a/arch/avr/src/avr32/Toolchain.defs b/arch/avr/src/avr32/Toolchain.defs index b0a40e34b3..68f9c7045b 100644 --- a/arch/avr/src/avr32/Toolchain.defs +++ b/arch/avr/src/avr32/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/avr/src/avr32/Toolchain.defs # -# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -62,6 +62,8 @@ endif ifeq ($(CONFIG_AVR32_TOOLCHAIN),AVRTOOLSW) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif else # AVR Tools or avr32-toolchain from https://github.com/jsnyder/avr32-toolchain diff --git a/arch/mips/src/mips32/Toolchain.defs b/arch/mips/src/mips32/Toolchain.defs index cee45311d8..3e2947a7e1 100644 --- a/arch/mips/src/mips32/Toolchain.defs +++ b/arch/mips/src/mips32/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/mips/src/mips32/Toolchain.defs # -# Copyright (C) 2012-2013, 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2013, 2015, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -178,6 +178,8 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW_XC32) CROSSDEV ?= xc32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN_MICROCHIP_XC32_LICENSED),y) MAXOPTIMIZATION ?= -O2 @@ -193,6 +195,8 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW) CROSSDEV ?= pic32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) $(MIPS_MICROMIPS) -mno-float -mlong32 -membedded-data @@ -219,6 +223,8 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW_LITE) # CROSSDEV ?= xc32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif # MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) $(MIPS_MICROMIPS) -mno-float -mlong32 -membedded-data @@ -245,6 +251,8 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),PINGUINOW) CROSSDEV ?= p32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mlong32 -membedded-data -msoft-float -march=$(MIPS_MARCH) $(MIPS_MICROMIPS) -EL diff --git a/arch/misoc/src/lm32/Toolchain.defs b/arch/misoc/src/lm32/Toolchain.defs index f59fa1ab45..f7c7c1adf9 100644 --- a/arch/misoc/src/lm32/Toolchain.defs +++ b/arch/misoc/src/lm32/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/misco/src/lm32/Toolchain.defs # -# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -100,5 +100,7 @@ ifeq ($(CONFIG_LM32_TOOLCHAIN),GNUW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif diff --git a/arch/sim/Kconfig b/arch/sim/Kconfig index 975d0449a5..5168c7796e 100644 --- a/arch/sim/Kconfig +++ b/arch/sim/Kconfig @@ -37,7 +37,7 @@ config SIM_CYGWIN_DECORATED default n depends on WINDOWS_CYGWIN ---help--- - Older versions of Cygwin toolsdecorated C symbol names by adding an + Older versions of Cygwin tools decorated C symbol names by adding an underscore to the beginning of the symbol name. Newer versions of Cygwin do not seem to do this. diff --git a/arch/z80/src/ez80/Toolchain.defs b/arch/z80/src/ez80/Toolchain.defs index bc68e4782d..257a37d995 100644 --- a/arch/z80/src/ez80/Toolchain.defs +++ b/arch/z80/src/ez80/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/ez80/Toolchain.defs # -# Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2016-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -44,4 +44,6 @@ CONFIG_EZ80_TOOLCHAIN ?= ZDSII ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y +else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif diff --git a/arch/z80/src/z180/Toolchain.defs b/arch/z80/src/z180/Toolchain.defs index cf97558ffc..ed57fff794 100644 --- a/arch/z80/src/z180/Toolchain.defs +++ b/arch/z80/src/z180/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/z180/Toolchain.defs # -# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -69,6 +69,8 @@ endif ifeq ($(CONFIG_AVR_TOOLCHAIN),SDCCWIN32) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif diff --git a/arch/z80/src/z8/Toolchain.defs b/arch/z80/src/z8/Toolchain.defs index 9aaf1b89ce..e1f5cb6420 100644 --- a/arch/z80/src/z8/Toolchain.defs +++ b/arch/z80/src/z8/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/z8/Toolchain.defs # -# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -44,4 +44,6 @@ CONFIG_Z8_TOOLCHAIN ?= ZDSII ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y +else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif diff --git a/arch/z80/src/z80/Toolchain.defs b/arch/z80/src/z80/Toolchain.defs index 90fc9944ad..9c0776247a 100644 --- a/arch/z80/src/z80/Toolchain.defs +++ b/arch/z80/src/z80/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/z80/Toolchain.defs # -# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -69,6 +69,8 @@ endif ifeq ($(CONFIG_AVR_TOOLCHAIN),SDCCWIN32) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y + else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) + WINTOOL = y endif endif diff --git a/tools/sethost.sh b/tools/sethost.sh index 085361f5b6..ba7848e042 100755 --- a/tools/sethost.sh +++ b/tools/sethost.sh @@ -1,7 +1,7 @@ #!/bin/bash # tools/sethost.sh # -# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -42,13 +42,14 @@ unset configfile function showusage { echo "" - echo "USAGE: $progname [-w|l] [-c|n] [-32|64] []" + echo "USAGE: $progname [-w|l] [-c|u|n] [-32|64] []" echo " $progname -h" echo "" echo "Where:" echo " -w|l selects Windows (w) or Linux (l). Default: Linux" - echo " -c|n selects Windows native (n) or Cygwin (c). Default Cygwin" - echo " -32|64 selects 32- or 64-bit host (Only for Cygwin). Default 64" + echo " -c|u|n selects Windows environment option: Cygwin (c), Ubuntu under" + echo " Windows 10 (u), or Windows native (n). Default Cygwin" + echo " -32|64 selects 32- or 64-bit host. Default 64" echo " -h will show this help test and terminate" echo " selects configuration file. Default: .config" exit 1 @@ -67,6 +68,9 @@ while [ ! -z "$1" ]; do -c ) wenv=cygwin ;; + -u ) + wenv=ubuntu + ;; -n ) wenv=native ;; @@ -170,6 +174,7 @@ if [ "X$host" == "Xlinux" ]; then kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_CYGWIN + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_MSYS kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_OTHER @@ -184,11 +189,19 @@ else if [ "X$wenv" == "Xcygwin" ]; then echo " Select CONFIG_WINDOWS_CYGWIN=y" kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_CYGWIN + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE else - echo " Select CONFIG_WINDOWS_NATIVE=y" - kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_CYGWIN + if [ "X$wenv" == "Xubuntu" ]; then + echo " Select CONFIG_WINDOWS_UBUNTU=y" + kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_UBUNTU + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE + else + echo " Select CONFIG_WINDOWS_NATIVE=y" + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU + kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE + fi fi kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_MSYS diff --git a/tools/testbuild.sh b/tools/testbuild.sh index 775dcab3fb..75e0e3b57c 100755 --- a/tools/testbuild.sh +++ b/tools/testbuild.sh @@ -1,7 +1,7 @@ #!/bin/bash # testbuild.sh # -# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -47,12 +47,13 @@ unset testfile function showusage { echo "" - echo "USAGE: $progname [-w|l] [-c|n] [-s] [-a ] [-n ] " + echo "USAGE: $progname [-w|l] [-c|u|n] [-s] [-a ] [-n ] " echo " $progname -h" echo "" echo "Where:" echo " -w|l selects Windows (w) or Linux (l). Default: Linux" - echo " -c|n selects Windows native (n) or Cygwin (c). Default Cygwin" + echo " -c|u|n selects Windows environment option: Cygwin (c), Ubuntu under" + echo " Windows 10 (u), or Windows native (n). Default Cygwin" echo " -s Use C++ unsigned long size_t in new operator. Default unsigned int" echo " -a provides the relative path to the apps/ directory. Default ../apps" echo " -n provides the relative path to the NxWidgets/ directory. Default ../NxWidgets" @@ -78,6 +79,9 @@ while [ ! -z "$1" ]; do -c ) wenv=cygwin ;; + -u ) + wenv=ubuntu + ;; -n ) wenv=native ;; @@ -165,11 +169,19 @@ function configure { if [ "X$wenv" == "Xcygwin" ]; then echo " Select CONFIG_WINDOWS_CYGWIN=y" kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_CYGWIN + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE else - echo " Select CONFIG_WINDOWS_NATIVE=y" - kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_CYGWIN + if [ "X$wenv" == "Xubuntu" ]; then + echo " Select CONFIG_WINDOWS_UBUNTU=y" + kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_UBUNTU + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_NATIVE + else + echo " Select CONFIG_WINDOWS_NATIVE=y" + kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_UBUNTU + kconfig-tweak --file $nuttx/.config --enable CONFIG_WINDOWS_NATIVE + fi fi kconfig-tweak --file $nuttx/.config --disable CONFIG_WINDOWS_MSYS From a323fb91d017d42cd21068009fd63e9299233c48 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 15:39:24 -0600 Subject: [PATCH 11/22] tools/: Small simplication to usage --- tools/sethost.sh | 3 +++ tools/testbuild.sh | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/tools/sethost.sh b/tools/sethost.sh index ba7848e042..c8bc0e4f95 100755 --- a/tools/sethost.sh +++ b/tools/sethost.sh @@ -66,12 +66,15 @@ while [ ! -z "$1" ]; do host=linux ;; -c ) + host=windows wenv=cygwin ;; -u ) + host=windows wenv=ubuntu ;; -n ) + host=windows wenv=native ;; -32 ) diff --git a/tools/testbuild.sh b/tools/testbuild.sh index 75e0e3b57c..0d10702c75 100755 --- a/tools/testbuild.sh +++ b/tools/testbuild.sh @@ -77,15 +77,19 @@ while [ ! -z "$1" ]; do host=linux ;; -c ) + host=windows wenv=cygwin ;; -u ) + host=windows wenv=ubuntu ;; -n ) + host=windows wenv=native ;; -s ) + host=windows sizet=long ;; -a ) From f46bfeb1f8e87775fa702de55021f7715ed8542c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 15:44:48 -0600 Subject: [PATCH 12/22] Fix/clarify a few coments. --- Kconfig | 2 +- README.txt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Kconfig b/Kconfig index 4ea2ee47af..cb4060ec25 100644 --- a/Kconfig +++ b/Kconfig @@ -63,7 +63,7 @@ config WINDOWS_CYGWIN /cygdrive/c/Program Files) config WINDOWS_UBUNTU - bool "Ubuntu under Windows10" + bool "Ubuntu under Windows 10" ---help--- Build natively in an Unbuntu shell under Windoes 10 environment with POSIX style paths (like /mnt/c/Program Files) diff --git a/README.txt b/README.txt index 24838ee4bd..89e6786361 100644 --- a/README.txt +++ b/README.txt @@ -56,10 +56,10 @@ ENVIRONMENTS - Ubuntu/bash shell under Windows 10. This is a new option under Windows 10. See the section "Ubuntu Bash under Windows 10" below. This is an improvement over Cygwin if your concern is compile time; - its build performance is comparable to native Linux. It also installs - in a tiny fraction of the time as Cygwin, perhaps 20 minutes for - the basic Ubuntu install (vs. more than a day for the complete Cygwin - install). + its build performance is comparable to native Linux, certainly better + than the Cygwin build time. It also installs in a tiny fraction of + the time as Cygwin, perhaps 20 minutes for the basic Ubuntu install + (vs. more than a day for the complete Cygwin install). - The MSYS environment. I have no experience using the MSYS environment and that configuration will not be discussed in this README file. From 3a0413c048395c1e816da6dd533a649eece67145 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 1 Jan 2017 16:29:03 -0600 Subject: [PATCH 13/22] Back out most of 34be3e7c3c5885dd657712f92965f52214105d78 and update README again. Windows native tools cannot be used with Ubuntu under Windows 10 now. For Cygwin, that support depends on the 'cygpath -w' tool to convert POSIX paths to Windows paths. There is no corresponding tool for Ubuntu under Windows 10. --- README.txt | 6 ++++++ arch/arm/src/arm/Toolchain.defs | 8 +------- arch/arm/src/armv6-m/Toolchain.defs | 12 +----------- arch/arm/src/armv7-a/Toolchain.defs | 8 +------- arch/arm/src/armv7-m/Toolchain.defs | 14 +------------- arch/arm/src/armv7-r/Toolchain.defs | 8 +------- arch/avr/src/avr/Toolchain.defs | 4 +--- arch/avr/src/avr32/Toolchain.defs | 4 +--- arch/mips/src/mips32/Toolchain.defs | 10 +--------- arch/misoc/src/lm32/Toolchain.defs | 4 +--- arch/z80/src/ez80/Toolchain.defs | 4 +--- arch/z80/src/z180/Toolchain.defs | 4 +--- arch/z80/src/z8/Toolchain.defs | 4 +--- arch/z80/src/z80/Toolchain.defs | 4 +--- 14 files changed, 19 insertions(+), 75 deletions(-) diff --git a/README.txt b/README.txt index 89e6786361..ab22e33b77 100644 --- a/README.txt +++ b/README.txt @@ -225,6 +225,12 @@ Ubuntu Bash under Windows 10 NuttX build system should deal with most that craziness for you. But not all, see the section "Cygwin Build Problems" below. + WARNING: Do not use Windows native tools with Ubuntu under Windows. This + tool combination is made to work with Cygwin through the use of the + 'cygpath -w' tool that converts paths from say '/cydrive/c/Program Files' + to 'C:\Program Files'. There is, however, no corresponding tool to convert + '/mnt/c/Program Files' in the Ubuntu environment. + INSTALLATION ^^^^^^^^^^^^ diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs index 199e118936..d713e92e5d 100644 --- a/arch/arm/src/arm/Toolchain.defs +++ b/arch/arm/src/arm/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv/Toolchain.defs # -# Copyright (C) 2012-2014, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2014 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -129,8 +129,6 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),CODESOURCERYW) MAXOPTIMIZATION ?= -O2 ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -141,8 +139,6 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= arm-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -162,7 +158,5 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN),GNU_EABIW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs index b3b1d3d7c0..dfe5b9c9fd 100644 --- a/arch/arm/src/armv6-m/Toolchain.defs +++ b/arch/arm/src/armv6-m/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv6-m/Toolchain.defs # -# Copyright (C) 2013, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2013 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -107,8 +107,6 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),ATOLLIC) ARCROSSDEV ?= arm-atollic-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -136,8 +134,6 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CODEREDW) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -157,8 +153,6 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),CODESOURCERYW) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -170,8 +164,6 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= arm-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif @@ -189,8 +181,6 @@ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABIW) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = -mcpu=cortex-m0 -mthumb -mfloat-abi=soft endif diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs index 329abba970..8ee6efdf2a 100644 --- a/arch/arm/src/armv7-a/Toolchain.defs +++ b/arch/arm/src/armv7-a/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv7-a/Toolchain.defs # -# Copyright (C) 2013, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2013 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -129,8 +129,6 @@ ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),CODESOURCERYW) MAXOPTIMIZATION ?= -O2 ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -141,8 +139,6 @@ ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= $(TARGET_ARCH)-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -162,7 +158,5 @@ ifeq ($(CONFIG_ARMV7A_TOOLCHAIN),GNU_EABIW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index 262f79c4de..8cfcaa3e1d 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv7-m/Toolchain.defs # -# Copyright (C) 2012-2013, 2015-2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2013, 2015-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -167,8 +167,6 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),ATOLLIC) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -205,8 +203,6 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CODEREDW) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -228,8 +224,6 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CODESOURCERYW) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -240,8 +234,6 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) endif @@ -264,8 +256,6 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),GNU_EABIW) ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -276,8 +266,6 @@ ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),RAISONANCE) ARCROSSDEV ?= arm-none-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ARCHCPUFLAGS = $(TOOLCHAIN_MCPU) -mthumb $(TOOLCHAIN_MFLOAT) endif diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs index 09aab78440..f1eb9db817 100644 --- a/arch/arm/src/armv7-r/Toolchain.defs +++ b/arch/arm/src/armv7-r/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/armv7-r/Toolchain.defs # -# Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2015 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -129,8 +129,6 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),CODESOURCERYW) MAXOPTIMIZATION ?= -O2 ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -141,8 +139,6 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),DEVKITARM) ARCROSSDEV ?= $(TARGET_ARCH)-eabi- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif @@ -162,7 +158,5 @@ ifeq ($(CONFIG_ARMV7R_TOOLCHAIN),GNU_EABIW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif diff --git a/arch/avr/src/avr/Toolchain.defs b/arch/avr/src/avr/Toolchain.defs index eea11e441a..7503086fb0 100644 --- a/arch/avr/src/avr/Toolchain.defs +++ b/arch/avr/src/avr/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/avr/src/avr/Toolchain.defs # -# Copyright (C) 2012-2013, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -134,8 +134,6 @@ ifeq ($(_WINAVR),1) CROSSDEV ?= avr- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif MAXOPTIMIZATION ?= -O2 LDFLAGS += -nostartfiles -nodefaultlibs diff --git a/arch/avr/src/avr32/Toolchain.defs b/arch/avr/src/avr32/Toolchain.defs index 68f9c7045b..b0a40e34b3 100644 --- a/arch/avr/src/avr32/Toolchain.defs +++ b/arch/avr/src/avr32/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/avr/src/avr32/Toolchain.defs # -# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -62,8 +62,6 @@ endif ifeq ($(CONFIG_AVR32_TOOLCHAIN),AVRTOOLSW) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif else # AVR Tools or avr32-toolchain from https://github.com/jsnyder/avr32-toolchain diff --git a/arch/mips/src/mips32/Toolchain.defs b/arch/mips/src/mips32/Toolchain.defs index 3e2947a7e1..cee45311d8 100644 --- a/arch/mips/src/mips32/Toolchain.defs +++ b/arch/mips/src/mips32/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/mips/src/mips32/Toolchain.defs # -# Copyright (C) 2012-2013, 2015, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012-2013, 2015 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -178,8 +178,6 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW_XC32) CROSSDEV ?= xc32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN_MICROCHIP_XC32_LICENSED),y) MAXOPTIMIZATION ?= -O2 @@ -195,8 +193,6 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW) CROSSDEV ?= pic32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) $(MIPS_MICROMIPS) -mno-float -mlong32 -membedded-data @@ -223,8 +219,6 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW_LITE) # CROSSDEV ?= xc32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif # MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) $(MIPS_MICROMIPS) -mno-float -mlong32 -membedded-data @@ -251,8 +245,6 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),PINGUINOW) CROSSDEV ?= p32- ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mlong32 -membedded-data -msoft-float -march=$(MIPS_MARCH) $(MIPS_MICROMIPS) -EL diff --git a/arch/misoc/src/lm32/Toolchain.defs b/arch/misoc/src/lm32/Toolchain.defs index f7c7c1adf9..f59fa1ab45 100644 --- a/arch/misoc/src/lm32/Toolchain.defs +++ b/arch/misoc/src/lm32/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/misco/src/lm32/Toolchain.defs # -# Copyright (C) 2016-2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -100,7 +100,5 @@ ifeq ($(CONFIG_LM32_TOOLCHAIN),GNUW) MAXOPTIMIZATION ?= -Os ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif diff --git a/arch/z80/src/ez80/Toolchain.defs b/arch/z80/src/ez80/Toolchain.defs index 257a37d995..bc68e4782d 100644 --- a/arch/z80/src/ez80/Toolchain.defs +++ b/arch/z80/src/ez80/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/ez80/Toolchain.defs # -# Copyright (C) 2012, 2016-2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -44,6 +44,4 @@ CONFIG_EZ80_TOOLCHAIN ?= ZDSII ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y -else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif diff --git a/arch/z80/src/z180/Toolchain.defs b/arch/z80/src/z180/Toolchain.defs index ed57fff794..cf97558ffc 100644 --- a/arch/z80/src/z180/Toolchain.defs +++ b/arch/z80/src/z180/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/z180/Toolchain.defs # -# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -69,8 +69,6 @@ endif ifeq ($(CONFIG_AVR_TOOLCHAIN),SDCCWIN32) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif diff --git a/arch/z80/src/z8/Toolchain.defs b/arch/z80/src/z8/Toolchain.defs index e1f5cb6420..9aaf1b89ce 100644 --- a/arch/z80/src/z8/Toolchain.defs +++ b/arch/z80/src/z8/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/z8/Toolchain.defs # -# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -44,6 +44,4 @@ CONFIG_Z8_TOOLCHAIN ?= ZDSII ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y -else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif diff --git a/arch/z80/src/z80/Toolchain.defs b/arch/z80/src/z80/Toolchain.defs index 9c0776247a..90fc9944ad 100644 --- a/arch/z80/src/z80/Toolchain.defs +++ b/arch/z80/src/z80/Toolchain.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/z80/src/z80/Toolchain.defs # -# Copyright (C) 2012, 2017 Gregory Nutt. All rights reserved. +# Copyright (C) 2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -69,8 +69,6 @@ endif ifeq ($(CONFIG_AVR_TOOLCHAIN),SDCCWIN32) ifeq ($(CONFIG_WINDOWS_CYGWIN),y) WINTOOL = y - else ifeq ($(CONFIG_WINDOWS_UBUNTU),y) - WINTOOL = y endif endif From 13d00344c9b4039e83419db3d859ef43927eab95 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 2 Jan 2017 07:16:47 -0600 Subject: [PATCH 14/22] Add configuration to prevent selection of Windows native toolchains when using Ubuntu under Windows 10 --- Kconfig | 12 ++++++++++++ README.txt | 17 ++++++++--------- arch/arm/src/arm/Kconfig | 10 +++++----- arch/arm/src/armv6-m/Kconfig | 14 +++++++------- arch/arm/src/armv7-a/Kconfig | 10 +++++----- arch/arm/src/armv7-m/Kconfig | 18 +++++++++--------- arch/arm/src/armv7-r/Kconfig | 10 +++++----- arch/avr/src/avr/Kconfig | 7 +++---- arch/avr/src/avr32/Kconfig | 4 ++-- arch/mips/src/mips32/Kconfig | 12 ++++++------ arch/misoc/src/lm32/Kconfig | 6 +++--- arch/risc-v/src/rv32im/Kconfig | 6 +++--- arch/z80/src/z180/Kconfig | 6 +++--- arch/z80/src/z80/Kconfig | 6 +++--- 14 files changed, 74 insertions(+), 64 deletions(-) diff --git a/Kconfig b/Kconfig index cb4060ec25..188f9d007b 100644 --- a/Kconfig +++ b/Kconfig @@ -45,6 +45,14 @@ config HOST_OTHER endchoice +config TOOLCHAIN_WINDOWS + bool + default n + depends on HOST_WINDOWS + ---help--- + Selected internally if the selected Windows environment is compatible + with the use of Windows native toolchains. + choice prompt "Windows Build Environment" default WINDOWS_CYGWIN @@ -52,12 +60,14 @@ choice config WINDOWS_NATIVE bool "Windows Native" + select TOOLCHAIN_WINDOWS ---help--- Build natively in a CMD.exe environment with Windows style paths (like C:\cgywin\home) config WINDOWS_CYGWIN bool "Cygwin" + select TOOLCHAIN_WINDOWS ---help--- Build natively in a Cygwin environment with POSIX style paths (like /cygdrive/c/Program Files) @@ -70,12 +80,14 @@ config WINDOWS_UBUNTU config WINDOWS_MSYS bool "MSYS" + select TOOLCHAIN_WINDOWS ---help--- Build natively in a Cygwin environment with POSIX style paths (like /cygdrive/c/cgywin/home) config WINDOWS_OTHER bool "Windows POSIX-like environment" + select TOOLCHAIN_WINDOWS ---help--- Build natively in another POSIX-like environment. Additional support may be necessary diff --git a/README.txt b/README.txt index ab22e33b77..b730b4eae7 100644 --- a/README.txt +++ b/README.txt @@ -219,17 +219,16 @@ Ubuntu Bash under Windows 10 Integrating with Windows Tools ------------------------------ - If you want to integrate with Windows native tools, then you will need + If you want to integrate with Windows native tools, then you would need deal with the same kind of craziness as with integrating Cygwin with - native toolchains. But when you select a Windows native toolchain, the - NuttX build system should deal with most that craziness for you. But not - all, see the section "Cygwin Build Problems" below. + native toolchains, see the section "Cygwin Build Problems" below. - WARNING: Do not use Windows native tools with Ubuntu under Windows. This - tool combination is made to work with Cygwin through the use of the - 'cygpath -w' tool that converts paths from say '/cydrive/c/Program Files' - to 'C:\Program Files'. There is, however, no corresponding tool to convert - '/mnt/c/Program Files' in the Ubuntu environment. + However, there is currently no build support for using Windows native + tools with Ubuntu under Windows. This tool combination is made to work + with Cygwin through the use of the 'cygpath -w' tool that converts paths + from say '/cydrive/c/Program Files' to 'C:\Program Files'. There is, + however, no corresponding tool to convert '/mnt/c/Program Files' in the + Ubuntu environment. INSTALLATION ^^^^^^^^^^^^ diff --git a/arch/arm/src/arm/Kconfig b/arch/arm/src/arm/Kconfig index 53f0958b2e..4b9ce18551 100644 --- a/arch/arm/src/arm/Kconfig +++ b/arch/arm/src/arm/Kconfig @@ -7,8 +7,8 @@ comment "ARM Configuration Options" choice prompt "Toolchain Selection" - default ARM_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARM_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARM_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARM_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARM_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -24,11 +24,11 @@ config ARM_TOOLCHAIN_CODESOURCERYL config ARM_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARM_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARM_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -38,7 +38,7 @@ config ARM_TOOLCHAIN_GNU_EABIL config ARM_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. diff --git a/arch/arm/src/armv6-m/Kconfig b/arch/arm/src/armv6-m/Kconfig index ed8b54a8e1..ed56bc9a71 100644 --- a/arch/arm/src/armv6-m/Kconfig +++ b/arch/arm/src/armv6-m/Kconfig @@ -7,12 +7,12 @@ comment "ARMV6M Configuration Options" choice prompt "Toolchain Selection" - default ARMV6M_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV6M_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV6M_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV6M_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_ATOLLIC bool "Atollic Lite/Pro for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -24,7 +24,7 @@ config ARMV6M_TOOLCHAIN_CODEREDL config ARMV6M_TOOLCHAIN_CODEREDW bool "CodeRed for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_CODESOURCERYL bool "CodeSourcery GNU toolchain under Linux" @@ -32,11 +32,11 @@ config ARMV6M_TOOLCHAIN_CODESOURCERYL config ARMV6M_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -46,7 +46,7 @@ config ARMV6M_TOOLCHAIN_GNU_EABIL config ARMV6M_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi. diff --git a/arch/arm/src/armv7-a/Kconfig b/arch/arm/src/armv7-a/Kconfig index 85ad10bbee..312ed8d441 100644 --- a/arch/arm/src/armv7-a/Kconfig +++ b/arch/arm/src/armv7-a/Kconfig @@ -128,8 +128,8 @@ endif # ARMV7A_HAVE_L2CC choice prompt "Toolchain Selection" - default ARMV7A_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV7A_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV7A_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV7A_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -145,11 +145,11 @@ config ARMV7A_TOOLCHAIN_CODESOURCERYL config ARMV7A_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -159,7 +159,7 @@ config ARMV7A_TOOLCHAIN_GNU_EABIL config ARMV7A_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. diff --git a/arch/arm/src/armv7-m/Kconfig b/arch/arm/src/armv7-m/Kconfig index 404dce0753..4c66b55d54 100644 --- a/arch/arm/src/armv7-m/Kconfig +++ b/arch/arm/src/armv7-m/Kconfig @@ -48,12 +48,12 @@ config ARMV7M_DTCM choice prompt "Toolchain Selection" - default ARMV7M_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV7M_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV7M_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV7M_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV7M_TOOLCHAIN_IARW bool "IAR for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_IAR config ARMV7M_TOOLCHAIN_IARL @@ -63,7 +63,7 @@ config ARMV7M_TOOLCHAIN_IARL config ARMV7M_TOOLCHAIN_ATOLLIC bool "Atollic Lite/Pro for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_BUILDROOT @@ -78,7 +78,7 @@ config ARMV7M_TOOLCHAIN_CODEREDL config ARMV7M_TOOLCHAIN_CODEREDW bool "CodeRed for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_CODESOURCERYL @@ -88,12 +88,12 @@ config ARMV7M_TOOLCHAIN_CODESOURCERYL config ARMV7M_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_GNU_EABIL @@ -106,7 +106,7 @@ config ARMV7M_TOOLCHAIN_GNU_EABIL config ARMV7M_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) @@ -114,7 +114,7 @@ config ARMV7M_TOOLCHAIN_GNU_EABIW config ARMV7M_TOOLCHAIN_RAISONANCE bool "STMicro Raisonance for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU endchoice diff --git a/arch/arm/src/armv7-r/Kconfig b/arch/arm/src/armv7-r/Kconfig index 1f46770cb6..03012b5da2 100644 --- a/arch/arm/src/armv7-r/Kconfig +++ b/arch/arm/src/armv7-r/Kconfig @@ -144,8 +144,8 @@ endif # ARMV7R_HAVE_L2CC choice prompt "Toolchain Selection" - default ARMV7R_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV7R_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV7R_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV7R_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -161,11 +161,11 @@ config ARMV7R_TOOLCHAIN_CODESOURCERYL config ARMV7R_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -175,7 +175,7 @@ config ARMV7R_TOOLCHAIN_GNU_EABIL config ARMV7R_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. diff --git a/arch/avr/src/avr/Kconfig b/arch/avr/src/avr/Kconfig index 496529f32c..2ddfa4e194 100644 --- a/arch/avr/src/avr/Kconfig +++ b/arch/avr/src/avr/Kconfig @@ -8,13 +8,13 @@ comment "AVR Configuration Options" choice prompt "Toolchain" - default AVR_WINAVR_TOOLCHAIN if HOST_WINDOWS + default AVR_WINAVR_TOOLCHAIN if TOOLCHAIN_WINDOWS default AVR_BUILDROOT_TOOLCHAIN if HOST_LINUX default AVR_CROSSPACK_TOOLCHAIN if HOST_OSX config AVR_WINAVR_TOOLCHAIN bool "WinAVR" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- For Cygwin development environment on Windows machines, you can use WinAVR: http://sourceforge.net/projects/winavr/files/ @@ -29,7 +29,7 @@ config AVR_WINAVR_TOOLCHAIN config AVR_ATMEL_AVR_TOOLCHAIN bool "Atmel AVR Toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- Atmel provides GNU Toolchain for AVR development. It can be obtained by installing Atmel Studio 6 and later or @@ -55,7 +55,6 @@ config AVR_CROSSPACK_TOOLCHAIN config AVR_BUILDROOT_TOOLCHAIN bool "Buildroot" - depends on HOST_LINUX || HOST_WINDOWS ---help--- There is a DIY buildroot version for the AVR boards here: http://sourceforge.net/projects/nuttx/files/buildroot/. See diff --git a/arch/avr/src/avr32/Kconfig b/arch/avr/src/avr32/Kconfig index 14d5c0f33b..05a056b698 100644 --- a/arch/avr/src/avr32/Kconfig +++ b/arch/avr/src/avr32/Kconfig @@ -8,12 +8,12 @@ comment "AVR32 Configuration Options" choice prompt "Toolchain" - default AVR32_AVRTOOLSW if HOST_WINDOWS + default AVR32_AVRTOOLSW if TOOLCHAIN_WINDOWS default AVR32_AVRTOOLSL if HOST_LINUX config AVR32_AVRTOOLSW bool "AVR tools for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config AVR32_AVRTOOLSL bool "AVR tools for Linux" diff --git a/arch/mips/src/mips32/Kconfig b/arch/mips/src/mips32/Kconfig index 228c28557f..5363ecbd54 100644 --- a/arch/mips/src/mips32/Kconfig +++ b/arch/mips/src/mips32/Kconfig @@ -8,8 +8,8 @@ comment "MIPS32 Configuration Options" choice prompt "Toolchain Selection" - default MIPS32_TOOLCHAIN_MICROCHIPW_LITE if HOST_WINDOWS - default MIPS32_TOOLCHAIN_GNU_ELF if !HOST_WINDOWS + default MIPS32_TOOLCHAIN_MICROCHIPW_LITE if TOOLCHAIN_WINDOWS + default MIPS32_TOOLCHAIN_GNU_ELF if !TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_GNU_ELF bool "Generic GNU ELF toolchain" @@ -31,15 +31,15 @@ config MIPS32_TOOLCHAIN_MICROCHIPL_LITE config MIPS32_TOOLCHAIN_MICROCHIPW_XC32 bool "Microchip XC32 toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_MICROCHIPW bool "Microchip C32 toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_MICROCHIPW_LITE bool "Microchip C32 toolchain under Windows (Lite edition)" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_MICROCHIPOPENL bool "microchipOpen toolchain under Linux" @@ -47,7 +47,7 @@ config MIPS32_TOOLCHAIN_MICROCHIPOPENL config MIPS32_TOOLCHAIN_PINGUINOW bool "Pinguino mips-elf toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_PINGUINOL bool "Pinguino mips-elf toolchain under OS X or Linux" diff --git a/arch/misoc/src/lm32/Kconfig b/arch/misoc/src/lm32/Kconfig index b9178978e7..c10407ef28 100644 --- a/arch/misoc/src/lm32/Kconfig +++ b/arch/misoc/src/lm32/Kconfig @@ -7,8 +7,8 @@ if ARCH_CHIP_LM32 choice prompt "Toolchain Selection" - default LM32_TOOLCHAIN_GNUW if HOST_WINDOWS - default LM32_TOOLCHAIN_GNUL if !HOST_WINDOWS + default LM32_TOOLCHAIN_GNUW if TOOLCHAIN_WINDOWS + default LM32_TOOLCHAIN_GNUL if !TOOLCHAIN_WINDOWS config LM32_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -22,7 +22,7 @@ config LM32_TOOLCHAIN_GNUL config LM32_TOOLCHAIN_GNUW bool "Generic GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for lm32-elf-. diff --git a/arch/risc-v/src/rv32im/Kconfig b/arch/risc-v/src/rv32im/Kconfig index 9bc4b560f5..e1607047b0 100644 --- a/arch/risc-v/src/rv32im/Kconfig +++ b/arch/risc-v/src/rv32im/Kconfig @@ -7,8 +7,8 @@ comment "RV32IM Configuration Options" choice prompt "Toolchain Selection" - default RV32IM_TOOLCHAIN_GNU_RVGW if HOST_WINDOWS - default RV32IM_TOOLCHAIN_GNU_RVGL if !HOST_WINDOWS + default RV32IM_TOOLCHAIN_GNU_RVGW if TOOLCHAIN_WINDOWS + default RV32IM_TOOLCHAIN_GNU_RVGL if !TOOLCHAIN_WINDOWS config RV32IM_TOOLCHAIN_GNU_RVGL bool "Generic GNU RVG toolchain under Linux (or other POSIX environment)" @@ -18,7 +18,7 @@ config RV32IM_TOOLCHAIN_GNU_RVGL config RV32IM_TOOLCHAIN_GNU_RVGW bool "Generic GNU RVG toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 5.2 or newer) configured for riscv32-unknown-elf. diff --git a/arch/z80/src/z180/Kconfig b/arch/z80/src/z180/Kconfig index ce26721f76..f2359d4694 100644 --- a/arch/z80/src/z180/Kconfig +++ b/arch/z80/src/z180/Kconfig @@ -7,8 +7,8 @@ if ARCH_CHIP_Z180 choice prompt "Toolchain Selection" - default Z180_TOOLCHAIN_SDCCW if HOST_WINDOWS - default Z180_TOOLCHAIN_SDCCL if !HOST_WINDOWS + default Z180_TOOLCHAIN_SDCCW if TOOLCHAIN_WINDOWS + default Z180_TOOLCHAIN_SDCCL if !TOOLCHAIN_WINDOWS config Z180_TOOLCHAIN_SDCCL bool "SDCC for Linux, MAC OSX, or Cygwin" @@ -16,7 +16,7 @@ config Z180_TOOLCHAIN_SDCCL config Z180_TOOLCHAIN_SDCCW bool "SDCC for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS endchoice diff --git a/arch/z80/src/z80/Kconfig b/arch/z80/src/z80/Kconfig index 7a05eb08ef..46b9f8c08a 100644 --- a/arch/z80/src/z80/Kconfig +++ b/arch/z80/src/z80/Kconfig @@ -7,8 +7,8 @@ if ARCH_CHIP_Z80 choice prompt "Toolchain Selection" - default Z80_TOOLCHAIN_SDCCW if HOST_WINDOWS - default Z80_TOOLCHAIN_SDCCL if !HOST_WINDOWS + default Z80_TOOLCHAIN_SDCCW if TOOLCHAIN_WINDOWS + default Z80_TOOLCHAIN_SDCCL if !TOOLCHAIN_WINDOWS config Z80_TOOLCHAIN_SDCCL bool "SDCC for Linux, MAC OSX, or Cygwin" @@ -16,7 +16,7 @@ config Z80_TOOLCHAIN_SDCCL config Z80_TOOLCHAIN_SDCCW bool "SDCC for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS endchoice From d5b1ca14e2badc5d13ac7e6c5b3d98b6e0112578 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 2 Jan 2017 13:54:07 -0600 Subject: [PATCH 15/22] Update README and some comments. --- README.txt | 32 ++++++++++++++++++++++++++------ sched/pthread/pthread_cancel.c | 4 +--- sched/task/task_delete.c | 2 -- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/README.txt b/README.txt index b730b4eae7..80957b3b2b 100644 --- a/README.txt +++ b/README.txt @@ -39,21 +39,27 @@ README ENVIRONMENTS ^^^^^^^^^^^^ - NuttX requires a POSIX development environment such as you would find uder + NuttX requires a POSIX development environment such as you would find under Linux or OSX. NuttX may be also be installed and built on Windows system - if you also provde such a POSIX develoment environment. Options for a + if you also provde such a POSIX development environment. Options for a POSIX development environment under Windows include: - - An installation Linux on a virtual machine in Windows. + - An installation of Linux on a virtual machine (VM) in Windows. I have + not been happy using a VM myself. I have had stability problems with + open source VMs and commercial VMs cost more than I want to spend. + Sharing files with Linux running in a VM is awkward; sharing devices + connected to the Windows box with Linux in a VM is, at the very least, + confusing; Using Windows tools (such as Segger J-Link) with files + built under the Linux VM is not a possibility. - The Cygwin environment. Instructions for installation of Cygwin on a Windows system are provided in the following paragraph, "Installing Cygwin". Cygwin is a mature, well-tested, and very convenient environment. It is especially expecially convenient if you need to - integrate with Windows tools. Downsides are that the installation - time is very long and the compile times are very slow. + integrate with Windows tools and files. Downsides are that the + installation time is very long and the compile times are slow. - - Ubuntu/bash shell under Windows 10. This is a new option under + - Ubuntu/Bash shell under Windows 10. This is a new option under Windows 10. See the section "Ubuntu Bash under Windows 10" below. This is an improvement over Cygwin if your concern is compile time; its build performance is comparable to native Linux, certainly better @@ -230,6 +236,20 @@ Ubuntu Bash under Windows 10 however, no corresponding tool to convert '/mnt/c/Program Files' in the Ubuntu environment. + Graphics Support + ---------------- + The Ubuntu version support by Microsoft is a command-line only version. + There is no support for Linux graphics utilities. + + This limititation is not a limitation of Ubuntu, however, only in what + Microsoft is willing to support. If you install a X-Server, then you + can also use basic graphics utilities. See for example: + + http://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/ + + Many Linux graphics programs would, however, also require a graphics + framework like GTK or Qt. So this might be a trip down the rabbit hole. + INSTALLATION ^^^^^^^^^^^^ diff --git a/sched/pthread/pthread_cancel.c b/sched/pthread/pthread_cancel.c index 6b974629a0..a9b7e8270b 100644 --- a/sched/pthread/pthread_cancel.c +++ b/sched/pthread/pthread_cancel.c @@ -1,7 +1,7 @@ /**************************************************************************** * sched/pthread/pthread_cancel.c * - * Copyright (C) 2007, 2009, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -120,8 +120,6 @@ int pthread_cancel(pthread_t thread) /* If the thread is waiting at a cancellation point, then notify of the * cancellation thereby waking the task up with an ECANCELED error. - * - * REVISIT: is locking the scheduler sufficent in SMP mode? */ if (tcb->cmn.cpcount > 0) diff --git a/sched/task/task_delete.c b/sched/task/task_delete.c index 755584fd0c..ebf94c8bd8 100644 --- a/sched/task/task_delete.c +++ b/sched/task/task_delete.c @@ -152,8 +152,6 @@ int task_delete(pid_t pid) /* If the task is waiting at a cancellation point, then notify of the * cancellation thereby waking the task up with an ECANCELED error. - * - * REVISIT: is locking the scheduler sufficent in SMP mode? */ if (dtcb->cpcount > 0) From 6889171d7f6b72cfa31c0a17f2a8cae6b95f280d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 2 Jan 2017 14:02:20 -0600 Subject: [PATCH 16/22] Update a README --- tools/README.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/README.txt b/tools/README.txt index e8bb6135a3..b0f36793e9 100644 --- a/tools/README.txt +++ b/tools/README.txt @@ -269,7 +269,7 @@ bdf-convert.c 2. Use the bdf-converter program to convert the BDF font to the NuttX font format. This will result in a C header file containing definitions. That header file should be installed at, for example, - graphics/nxfonts/nxfonts_myfont.h. + libnx/nxfonts/nxfonts_myfont.h. Create a new NuttX configuration variable. For example, suppose you define the following variable: CONFIG_NXFONT_MYFONT. Then @@ -324,7 +324,7 @@ bdf-convert.c @$(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=2 EXTRADEFINES=$(EXTRADEFINES) endif - 6. nuttx/graphics/nxfonts/Make.defs. Set the make variable NXFSET_CSRCS. + 6. nuttx/libnx/nxfonts/Make.defs. Set the make variable NXFSET_CSRCS. NXFSET_CSRCS determines the name of the font C file to build when NXFONTS_FONTID=2: @@ -335,12 +335,12 @@ bdf-convert.c NXFSET_CSRCS += nxfonts_bitmaps_myfont.c endif - 7. nuttx/graphics/nxfonts/Makefile.sources. This is the Makefile used + 7. nuttx/libnx/nxfonts/Makefile.sources. This is the Makefile used in step 5 that will actually generate the font C file. So, given your NXFONTS_FONTID=2, it needs to determine a prefix to use for auto-generated variable and function names and (again) the name of the auto-generated file to create (this must be the same name that - was used in nuttx/graphics/nxfonts/Make.defs): + was used in nuttx/libnx/nxfonts/Make.defs): ifeq ($(NXFONTS_FONTID),1) NXFONTS_PREFIX := g_sans23x27_ @@ -351,9 +351,9 @@ bdf-convert.c GEN_CSRC = nxfonts_bitmaps_myfont.c endif - 8. graphics/nxfonts/nxfonts_bitmaps.c. This is the file that contains + 8. graphics/libnx/nxfonts_bitmaps.c. This is the file that contains the generic font structures. It is used as a "template" file by - nuttx/graphics/nxfonts/Makefile.sources to create your customized + nuttx/libnx/nxfonts/Makefile.sources to create your customized font data set. #if NXFONTS_FONTID == 1 @@ -367,7 +367,7 @@ bdf-convert.c Where nxfonts_myfont.h is the NuttX font file that we generated in step 2 using the bdf-converter tool. - 9. graphics/nxfonts/nxfonts_getfont.c. Finally, we need to extend the + 9. libnx/nxfonts/nxfonts_getfont.c. Finally, we need to extend the logic that does the run-time font lookups so that can find our new font. The lookup function is NXHANDLE nxf_getfonthandle(enum nx_fontid_e fontid). The new font information needs to be added to data structures used by From 6c826bb209926a619b3be17e89ede7bb519018fe Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Tue, 3 Jan 2017 11:11:47 -0600 Subject: [PATCH 17/22] Add support for Tom Thumb small mono-space font --- graphics/Kconfig | 7 + include/nuttx/nx/nxfonts.h | 12 +- libnx/Makefile | 4 + libnx/nxfonts/Make.defs | 6 +- libnx/nxfonts/Makefile.sources | 8 +- libnx/nxfonts/nxfonts.h | 7 +- libnx/nxfonts/nxfonts_bitmaps.c | 2 + libnx/nxfonts/nxfonts_getfont.c | 23 +- libnx/nxfonts/nxfonts_tom-thumb-3x6.h | 827 ++++++++++++++++++++++++++ 9 files changed, 877 insertions(+), 19 deletions(-) create mode 100644 libnx/nxfonts/nxfonts_tom-thumb-3x6.h diff --git a/graphics/Kconfig b/graphics/Kconfig index 6264f3da29..b58b2c11ba 100644 --- a/graphics/Kconfig +++ b/graphics/Kconfig @@ -555,6 +555,13 @@ config NXFONT_X11_MISC_FIXED_10X20 This option enables support for a "x11-misc-fixed-10x20". (font ID FONTID_X11_MISC_FIXED_10X20 == 42). +config NXFONT_TOM_THUMB_3X6 + bool "Tom Thumb Monospace 3x6" + default n + ---help--- + This option enables support for a small, 3x5 font. + (font ID FONTID_TOM_THUMB_3X6 == 43). + endmenu menuconfig NXTERM diff --git a/include/nuttx/nx/nxfonts.h b/include/nuttx/nx/nxfonts.h index 5d5dcf0d36..a7ba1a2318 100644 --- a/include/nuttx/nx/nxfonts.h +++ b/include/nuttx/nx/nxfonts.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/nuttx/nx/nxfonts.h * - * Copyright (C) 2008, 2009, 2011, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2008, 2009, 2011, 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -50,6 +50,7 @@ /**************************************************************************** * Pre-processor definitions ****************************************************************************/ + /* Select the default font. If no fonts are selected, then a compilation * error is likely down the road. */ @@ -194,6 +195,11 @@ #elif defined(CONFIG_NXFONT_MONO5X8) # define NXFONT_DEFAULT FONTID_MONO5X8 +/* Tom Thumb mono-space 3x6 font */ + +#elif defined(CONFIG_NXFONT_TOM_THUMB_3X6) +# define NXFONT_DEFAULT FONTID_TOM_THUMB_3X6 + #endif /**************************************************************************** @@ -387,6 +393,10 @@ enum nx_fontid_e #ifdef CONFIG_NXFONT_X11_MISC_FIXED_10X20 , FONTID_X11_MISC_FIXED_10X20 = 42 /* X11 misc fixed 10x20 */ #endif + +#ifdef CONFIG_NXFONT_TOM_THUMB_3X6 + , FONTID_TOM_THUMB_3X6 = 43 /* Tom Thumb monospace 3x6 */ +#endif }; /* This structures provides the metrics for one glyph */ diff --git a/libnx/Makefile b/libnx/Makefile index 295d64e85d..20de21cb01 100644 --- a/libnx/Makefile +++ b/libnx/Makefile @@ -225,6 +225,10 @@ ifeq ($(CONFIG_NXFONT_X11_MISC_FIXED_10X20),y) $(Q) $(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=42 EXTRADEFINES=$(EXTRADEFINES) endif +ifeq ($(CONFIG_NXFONT_TOM_THUMB_3X6),y) + $(Q) $(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=43 EXTRADEFINES=$(EXTRADEFINES) +endif + gensources: gen1bppsources gen2bppsource gen4bppsource gen8bppsource gen16bppsource gen24bppsource gen32bppsources genfontsources $(AOBJS): $(BINDIR)$(DELIM)%$(OBJEXT): %.S diff --git a/libnx/nxfonts/Make.defs b/libnx/nxfonts/Make.defs index cc3bb80f81..8d9c08af90 100644 --- a/libnx/nxfonts/Make.defs +++ b/libnx/nxfonts/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # libnx/nxfonts/Make.defs # -# Copyright (C) 2008, 2013 Gregory Nutt. All rights reserved. +# Copyright (C) 2008, 2013, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -225,7 +225,11 @@ ifeq ($(CONFIG_NXFONT_X11_MISC_FIXED_10X20),y) CSRCS += nxfonts_bitmaps_x11-misc-fixed-10x20.c endif +# Tom Thumb mono-space 3x6 font +ifeq ($(CONFIG_NXFONT_TOM_THUMB_3X6),y) +CSRCS += nxfonts_tom-thumb-3x6.c +endif # Add the nxfont/ directory to the build diff --git a/libnx/nxfonts/Makefile.sources b/libnx/nxfonts/Makefile.sources index 7df446bda0..3046fbe83b 100644 --- a/libnx/nxfonts/Makefile.sources +++ b/libnx/nxfonts/Makefile.sources @@ -1,7 +1,7 @@ ############################################################################ # libnx/nxfonts/Makefile.sources # -# Copyright (C) 2008, 2013 Gregory Nutt. All rights reserved. +# Copyright (C) 2008, 2013, 2017 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -296,6 +296,12 @@ NXFONTS_PREFIX := g_x11_misc_fixed_10x20_ GEN_CSRC = nxfonts_bitmaps_x11-misc-fixed-10x20.c endif +# Tom Thumb mono-space 3x6 font + +ifeq ($(NXFONTS_FONTID),43) +NXFONTS_PREFIX := g_tom_thumb_3x6_ +GEN_CSRC = nxfonts_tom-thumb-3x6.c +endif DEPENDENCY := nxfonts_bitmaps.c CPPFLAGS += -DNXFONTS_FONTID=$(NXFONTS_FONTID) diff --git a/libnx/nxfonts/nxfonts.h b/libnx/nxfonts/nxfonts.h index 1e3fa18bb3..1d8a348903 100644 --- a/libnx/nxfonts/nxfonts.h +++ b/libnx/nxfonts/nxfonts.h @@ -54,10 +54,6 @@ # define CONFIG_NXFONTS_CHARBITS 7 #endif -/**************************************************************************** - * Public Types - ****************************************************************************/ - /**************************************************************************** * Public Data ****************************************************************************/ @@ -65,7 +61,8 @@ #undef EXTERN #if defined(__cplusplus) # define EXTERN extern "C" -extern "C" { +extern "C" +{ #else # define EXTERN extern #endif diff --git a/libnx/nxfonts/nxfonts_bitmaps.c b/libnx/nxfonts/nxfonts_bitmaps.c index 28e6aa18dc..57ac0852a3 100644 --- a/libnx/nxfonts/nxfonts_bitmaps.c +++ b/libnx/nxfonts/nxfonts_bitmaps.c @@ -130,6 +130,8 @@ # include "nxfonts_x11-misc-fixed-9x18B.h" #elif NXFONTS_FONTID == 42 # include "nxfonts_x11-misc-fixed-10x20.h" +#elif NXFONTS_FONTID == 43 +# include "nxfonts_tom-thumb-3x6.h" #else # error "No font ID specified" #endif diff --git a/libnx/nxfonts/nxfonts_getfont.c b/libnx/nxfonts/nxfonts_getfont.c index 1e8f80edc2..aea6cba0e8 100644 --- a/libnx/nxfonts/nxfonts_getfont.c +++ b/libnx/nxfonts/nxfonts_getfont.c @@ -1,7 +1,7 @@ /**************************************************************************** * libnx/nxfonts/nxfonts_getfont.c * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2011, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -49,15 +49,7 @@ #include "nxfonts.h" /**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data + * Public Data ****************************************************************************/ /* MONO */ @@ -246,9 +238,12 @@ extern const struct nx_fontpackage_s g_x11_misc_fixed_9x18B_package; extern const struct nx_fontpackage_s g_x11_misc_fixed_10x20_package; #endif +#ifdef CONFIG_NXFONT_TOM_THUMB_3X6 +extern const struct nx_fontpackage_s g_tom_thumb_3x6_package; +#endif + static FAR const struct nx_fontpackage_s *g_fontpackages[] = { - /* MONO */ #ifdef CONFIG_NXFONT_MONO5X8 @@ -431,6 +426,12 @@ static FAR const struct nx_fontpackage_s *g_fontpackages[] = &g_x11_misc_fixed_10x20_package, #endif +/* Tom Thumb mono-space 3x6 font */ + +#ifdef CONFIG_NXFONT_TOM_THUMB_3X6 + &g_tom_thumb_3x6_package, +#endif + NULL }; diff --git a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h new file mode 100644 index 0000000000..e34d082b2b --- /dev/null +++ b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h @@ -0,0 +1,827 @@ +/**************************************************************************** + * libnx/nxfonts/nxfonts_tom-thumb-3x6.h + * + * Copyright (C) 2017 Alan Carvalho de Assis. All rights reserved. + * Author: Alan Carvalho de Assis + * + * Based on Tom Thumb font: + * https://robey.lag.net/2010/01/23/tiny-monospace-font.html + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT} + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING} + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_3X6_H +#define __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_3X6_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +/**************************************************************************** + * Pre-Processor Definitions + ****************************************************************************/ + +/* Font ID */ + +#define NXFONT_ID FONTID_TOM_THUMB_3X6 + +/* Ranges of 7-bit and 8-bit fonts */ + +#define NXFONT_MIN7BIT 33 +#define NXFONT_MAX7BIT 126 + +#define NXFONT_MIN8BIT 161 +#define NXFONT_MAX8BIT 255 + +/* Maximum height and width of any glyph in the set */ + +#define NXFONT_MAXHEIGHT 6 +#define NXFONT_MAXWIDTH 3 + +/* The width of a space */ + +#define NXFONT_SPACEWIDTH 4 + +/* exclam (33) */ +#define NXFONT_METRICS_33 {1, 1, 5, 1, 0, 0} +#define NXFONT_BITMAP_33 {0x80, 0x80, 0x80, 0x0, 0x80} + +/* quotedbl (34) */ +#define NXFONT_METRICS_34 {1, 3, 2, 0, 0, 0} +#define NXFONT_BITMAP_34 {0xa0, 0xa0} + +/* numbersign (35) */ +#define NXFONT_METRICS_35 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_35 {0xa0, 0xe0, 0xa0, 0xe0, 0xa0} + +/* dollar (36) */ +#define NXFONT_METRICS_36 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_36 {0x60, 0xc0, 0x60, 0xc0, 0x40} + +/* percent (37) */ +#define NXFONT_METRICS_37 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_37 {0x80, 0x20, 0x40, 0x80, 0x20} + +/* ampersand (38) */ +#define NXFONT_METRICS_38 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_38 {0xc0, 0xc0, 0xe0, 0xa0, 0x60} + +/* quotesingle (39) */ +#define NXFONT_METRICS_39 {1, 1, 2, 1, 0, 0} +#define NXFONT_BITMAP_39 {0x80, 0x80} + +/* parenleft (40) */ +#define NXFONT_METRICS_40 {1, 2, 5, 1, 0, 0} +#define NXFONT_BITMAP_40 {0x40, 0x80, 0x80, 0x80, 0x40} + +/* parenright (41) */ +#define NXFONT_METRICS_41 {1, 2, 5, 0, 0, 0} +#define NXFONT_BITMAP_41 {0x80, 0x40, 0x40, 0x40, 0x80} + +/* asterisk (42) */ +#define NXFONT_METRICS_42 {1, 3, 3, 0, 0, 0} +#define NXFONT_BITMAP_42 {0xa0, 0x40, 0xa0} + +/* plus (43) */ +#define NXFONT_METRICS_43 {1, 3, 3, 0, 1, 0} +#define NXFONT_BITMAP_43 {0x40, 0xe0, 0x40} + +/* comma (44) */ +#define NXFONT_METRICS_44 {1, 2, 2, 0, 3, 0} +#define NXFONT_BITMAP_44 {0x40, 0x80} + +/* hyphen (45) */ +#define NXFONT_METRICS_45 {1, 3, 1, 0, 2, 0} +#define NXFONT_BITMAP_45 {0xe0} + +/* period (46) */ +#define NXFONT_METRICS_46 {1, 1, 1, 1, 4, 0} +#define NXFONT_BITMAP_46 {0x80} + +/* slash (47) */ +#define NXFONT_METRICS_47 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_47 {0x20, 0x20, 0x40, 0x80, 0x80} + +/* zero (48) */ +#define NXFONT_METRICS_48 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_48 {0x60, 0xa0, 0xa0, 0xa0, 0xc0} + +/* one (49) */ +#define NXFONT_METRICS_49 {1, 2, 5, 0, 0, 0} +#define NXFONT_BITMAP_49 {0x40, 0xc0, 0x40, 0x40, 0x40} + +/* two (50) */ +#define NXFONT_METRICS_50 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_50 {0xc0, 0x20, 0x40, 0x80, 0xe0} + +/* three (51) */ +#define NXFONT_METRICS_51 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_51 {0xc0, 0x20, 0x40, 0x20, 0xc0} + +/* four (52) */ +#define NXFONT_METRICS_52 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_52 {0xa0, 0xa0, 0xe0, 0x20, 0x20} + +/* five (53) */ +#define NXFONT_METRICS_53 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_53 {0xe0, 0x80, 0xc0, 0x20, 0xc0} + +/* six (54) */ +#define NXFONT_METRICS_54 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_54 {0x60, 0x80, 0xe0, 0xa0, 0xe0} + +/* seven (55) */ +#define NXFONT_METRICS_55 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_55 {0xe0, 0x20, 0x40, 0x80, 0x80} + +/* eight (56) */ +#define NXFONT_METRICS_56 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_56 {0xe0, 0xa0, 0xe0, 0xa0, 0xe0} + +/* nine (57) */ +#define NXFONT_METRICS_57 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_57 {0xe0, 0xa0, 0xe0, 0x20, 0xc0} + +/* colon (58) */ +#define NXFONT_METRICS_58 {1, 1, 3, 1, 1, 0} +#define NXFONT_BITMAP_58 {0x80, 0x0, 0x80} + +/* semicolon (59) */ +#define NXFONT_METRICS_59 {1, 2, 4, 0, 1, 0} +#define NXFONT_BITMAP_59 {0x40, 0x0, 0x40, 0x80} + +/* less (60) */ +#define NXFONT_METRICS_60 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_60 {0x20, 0x40, 0x80, 0x40, 0x20} + +/* equal (61) */ +#define NXFONT_METRICS_61 {1, 3, 3, 0, 1, 0} +#define NXFONT_BITMAP_61 {0xe0, 0x0, 0xe0} + +/* greater (62) */ +#define NXFONT_METRICS_62 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_62 {0x80, 0x40, 0x20, 0x40, 0x80} + +/* question (63) */ +#define NXFONT_METRICS_63 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_63 {0xe0, 0x20, 0x40, 0x0, 0x40} + +/* at (64) */ +#define NXFONT_METRICS_64 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_64 {0x40, 0xa0, 0xe0, 0x80, 0x60} + +/* A (65) */ +#define NXFONT_METRICS_65 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_65 {0x40, 0xa0, 0xe0, 0xa0, 0xa0} + +/* B (66) */ +#define NXFONT_METRICS_66 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_66 {0xc0, 0xa0, 0xc0, 0xa0, 0xc0} + +/* C (67) */ +#define NXFONT_METRICS_67 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_67 {0x60, 0x80, 0x80, 0x80, 0x60} + +/* D (68) */ +#define NXFONT_METRICS_68 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_68 {0xc0, 0xa0, 0xa0, 0xa0, 0xc0} + +/* E (69) */ +#define NXFONT_METRICS_69 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_69 {0xe0, 0x80, 0xe0, 0x80, 0xe0} + +/* F (70) */ +#define NXFONT_METRICS_70 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_70 {0xe0, 0x80, 0xe0, 0x80, 0x80} + +/* G (71) */ +#define NXFONT_METRICS_71 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_71 {0x60, 0x80, 0xe0, 0xa0, 0x60} + +/* H (72) */ +#define NXFONT_METRICS_72 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_72 {0xa0, 0xa0, 0xe0, 0xa0, 0xa0} + +/* I (73) */ +#define NXFONT_METRICS_73 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_73 {0xe0, 0x40, 0x40, 0x40, 0xe0} + +/* J (74) */ +#define NXFONT_METRICS_74 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_74 {0x20, 0x20, 0x20, 0xa0, 0x40} + +/* K (75) */ +#define NXFONT_METRICS_75 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_75 {0xa0, 0xa0, 0xc0, 0xa0, 0xa0} + +/* L (76) */ +#define NXFONT_METRICS_76 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_76 {0x80, 0x80, 0x80, 0x80, 0xe0} + +/* M (77) */ +#define NXFONT_METRICS_77 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_77 {0xa0, 0xe0, 0xe0, 0xa0, 0xa0} + +/* N (78) */ +#define NXFONT_METRICS_78 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_78 {0xa0, 0xe0, 0xe0, 0xe0, 0xa0} + +/* O (79) */ +#define NXFONT_METRICS_79 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_79 {0x40, 0xa0, 0xa0, 0xa0, 0x40} + +/* P (80) */ +#define NXFONT_METRICS_80 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_80 {0xc0, 0xa0, 0xc0, 0x80, 0x80} + +/* Q (81) */ +#define NXFONT_METRICS_81 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_81 {0x40, 0xa0, 0xa0, 0xe0, 0x60} + +/* R (82) */ +#define NXFONT_METRICS_82 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_82 {0xc0, 0xa0, 0xe0, 0xc0, 0xa0} + +/* S (83) */ +#define NXFONT_METRICS_83 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_83 {0x60, 0x80, 0x40, 0x20, 0xc0} + +/* T (84) */ +#define NXFONT_METRICS_84 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_84 {0xe0, 0x40, 0x40, 0x40, 0x40} + +/* U (85) */ +#define NXFONT_METRICS_85 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_85 {0xa0, 0xa0, 0xa0, 0xa0, 0x60} + +/* V (86) */ +#define NXFONT_METRICS_86 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_86 {0xa0, 0xa0, 0xa0, 0x40, 0x40} + +/* W (87) */ +#define NXFONT_METRICS_87 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_87 {0xa0, 0xa0, 0xe0, 0xe0, 0xa0} + +/* X (88) */ +#define NXFONT_METRICS_88 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_88 {0xa0, 0xa0, 0x40, 0xa0, 0xa0} + +/* Y (89) */ +#define NXFONT_METRICS_89 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_89 {0xa0, 0xa0, 0x40, 0x40, 0x40} + +/* Z (90) */ +#define NXFONT_METRICS_90 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_90 {0xe0, 0x20, 0x40, 0x80, 0xe0} + +/* bracketleft (91) */ +#define NXFONT_METRICS_91 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_91 {0xe0, 0x80, 0x80, 0x80, 0xe0} + +/* backslash (92) */ +#define NXFONT_METRICS_92 {1, 3, 3, 0, 1, 0} +#define NXFONT_BITMAP_92 {0x80, 0x40, 0x20} + +/* bracketright (93) */ +#define NXFONT_METRICS_93 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_93 {0xe0, 0x20, 0x20, 0x20, 0xe0} + +/* asciicircum (94) */ +#define NXFONT_METRICS_94 {1, 3, 2, 0, 0, 0} +#define NXFONT_BITMAP_94 {0x40, 0xa0} + +/* underscore (95) */ +#define NXFONT_METRICS_95 {1, 3, 1, 0, 4, 0} +#define NXFONT_BITMAP_95 {0xe0} + +/* grave (96) */ +#define NXFONT_METRICS_96 {1, 2, 2, 0, 0, 0} +#define NXFONT_BITMAP_96 {0x80, 0x40} + +/* a (97) */ +#define NXFONT_METRICS_97 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_97 {0xc0, 0x60, 0xa0, 0xe0} + +/* b (98) */ +#define NXFONT_METRICS_98 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_98 {0x80, 0xc0, 0xa0, 0xa0, 0xc0} + +/* c (99) */ +#define NXFONT_METRICS_99 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_99 {0x60, 0x80, 0x80, 0x60} + +/* d (100) */ +#define NXFONT_METRICS_100 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_100 {0x20, 0x60, 0xa0, 0xa0, 0x60} + +/* e (101) */ +#define NXFONT_METRICS_101 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_101 {0x60, 0xa0, 0xc0, 0x60} + +/* f (102) */ +#define NXFONT_METRICS_102 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_102 {0x20, 0x40, 0xe0, 0x40, 0x40} + +/* g (103) */ +#define NXFONT_METRICS_103 {1, 3, 5, 0, 1, 0} +#define NXFONT_BITMAP_103 {0x60, 0xa0, 0xe0, 0x20, 0x40} + +/* h (104) */ +#define NXFONT_METRICS_104 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_104 {0x80, 0xc0, 0xa0, 0xa0, 0xa0} + +/* i (105) */ +#define NXFONT_METRICS_105 {1, 1, 5, 1, 0, 0} +#define NXFONT_BITMAP_105 {0x80, 0x0, 0x80, 0x80, 0x80} + +/* j (106) */ +#define NXFONT_METRICS_106 {1, 3, 6, 0, 0, 0} +#define NXFONT_BITMAP_106 {0x20, 0x0, 0x20, 0x20, 0xa0, 0x40} + +/* k (107) */ +#define NXFONT_METRICS_107 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_107 {0x80, 0xa0, 0xc0, 0xc0, 0xa0} + +/* l (108) */ +#define NXFONT_METRICS_108 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_108 {0xc0, 0x40, 0x40, 0x40, 0xe0} + +/* m (109) */ +#define NXFONT_METRICS_109 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_109 {0xe0, 0xe0, 0xe0, 0xa0} + +/* n (110) */ +#define NXFONT_METRICS_110 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_110 {0xc0, 0xa0, 0xa0, 0xa0} + +/* o (111) */ +#define NXFONT_METRICS_111 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_111 {0x40, 0xa0, 0xa0, 0x40} + +/* p (112) */ +#define NXFONT_METRICS_112 {1, 3, 5, 0, 1, 0} +#define NXFONT_BITMAP_112 {0xc0, 0xa0, 0xa0, 0xc0, 0x80} + +/* q (113) */ +#define NXFONT_METRICS_113 {1, 3, 5, 0, 1, 0} +#define NXFONT_BITMAP_113 {0x60, 0xa0, 0xa0, 0x60, 0x20} + +/* r (114) */ +#define NXFONT_METRICS_114 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_114 {0x60, 0x80, 0x80, 0x80} + +/* s (115) */ +#define NXFONT_METRICS_115 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_115 {0x60, 0xc0, 0x60, 0xc0} + +/* t (116) */ +#define NXFONT_METRICS_116 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_116 {0x40, 0xe0, 0x40, 0x40, 0x60} + +/* u (117) */ +#define NXFONT_METRICS_117 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_117 {0xa0, 0xa0, 0xa0, 0x60} + +/* v (118) */ +#define NXFONT_METRICS_118 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_118 {0xa0, 0xa0, 0xe0, 0x40} + +/* w (119) */ +#define NXFONT_METRICS_119 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_119 {0xa0, 0xe0, 0xe0, 0xe0} + +/* x (120) */ +#define NXFONT_METRICS_120 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_120 {0xa0, 0x40, 0x40, 0xa0} + +/* y (121) */ +#define NXFONT_METRICS_121 {1, 3, 5, 0, 1, 0} +#define NXFONT_BITMAP_121 {0xa0, 0xa0, 0x60, 0x20, 0x40} + +/* z (122) */ +#define NXFONT_METRICS_122 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_122 {0xe0, 0x60, 0xc0, 0xe0} + +/* braceleft (123) */ +#define NXFONT_METRICS_123 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_123 {0x60, 0x40, 0x80, 0x40, 0x60} + +/* bar (124) */ +#define NXFONT_METRICS_124 {1, 1, 5, 1, 0, 0} +#define NXFONT_BITMAP_124 {0x80, 0x80, 0x0, 0x80, 0x80} + +/* braceright (125) */ +#define NXFONT_METRICS_125 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_125 {0xc0, 0x40, 0x20, 0x40, 0xc0} + +/* asciitilde (126) */ +#define NXFONT_METRICS_126 {1, 3, 2, 0, 0, 0} +#define NXFONT_BITMAP_126 {0x60, 0xc0} + +/* exclamdown (161) */ +#define NXFONT_METRICS_161 {1, 1, 5, 1, 0, 0} +#define NXFONT_BITMAP_161 {0x80, 0x0, 0x80, 0x80, 0x80} + +/* cent (162) */ +#define NXFONT_METRICS_162 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_162 {0x40, 0xe0, 0x80, 0xe0, 0x40} + +/* sterling (163) */ +#define NXFONT_METRICS_163 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_163 {0x60, 0x40, 0xe0, 0x40, 0xe0} + +/* currency (164) */ +#define NXFONT_METRICS_164 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_164 {0xa0, 0x40, 0xe0, 0x40, 0xa0} + +/* yen (165) */ +#define NXFONT_METRICS_165 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_165 {0xa0, 0xa0, 0x40, 0xe0, 0x40} + +/* brokenbar (166) */ +#define NXFONT_METRICS_166 {1, 1, 5, 1, 0, 0} +#define NXFONT_BITMAP_166 {0x80, 0x80, 0x0, 0x80, 0x80} + +/* section (167) */ +#define NXFONT_METRICS_167 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_167 {0x60, 0x40, 0xa0, 0x40, 0xc0} + +/* dieresis (168) */ +#define NXFONT_METRICS_168 {1, 3, 1, 0, 0, 0} +#define NXFONT_BITMAP_168 {0xa0} + +/* copyright (169) */ +#define NXFONT_METRICS_169 {1, 3, 3, 0, 0, 0} +#define NXFONT_BITMAP_169 {0x60, 0x80, 0x60} + +/* ordfeminine (170) */ +#define NXFONT_METRICS_170 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_170 {0x60, 0xa0, 0xe0, 0x0, 0xe0} + +/* guillemotleft (171) */ +#define NXFONT_METRICS_171 {1, 2, 3, 0, 0, 0} +#define NXFONT_BITMAP_171 {0x40, 0x80, 0x40} + +/* logicalnot (172) */ +#define NXFONT_METRICS_172 {1, 3, 2, 0, 1, 0} +#define NXFONT_BITMAP_172 {0xe0, 0x20} + +/* softhyphen (173) */ +#define NXFONT_METRICS_173 {1, 2, 1, 0, 2, 0} +#define NXFONT_BITMAP_173 {0xc0} + +/* registered (174) */ +#define NXFONT_METRICS_174 {1, 3, 3, 0, 0, 0} +#define NXFONT_BITMAP_174 {0xc0, 0xc0, 0xa0} + +/* macron (175) */ +#define NXFONT_METRICS_175 {1, 3, 1, 0, 0, 0} +#define NXFONT_BITMAP_175 {0xe0} + +/* degree (176) */ +#define NXFONT_METRICS_176 {1, 3, 3, 0, 0, 0} +#define NXFONT_BITMAP_176 {0x40, 0xa0, 0x40} + +/* plusminus (177) */ +#define NXFONT_METRICS_177 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_177 {0x40, 0xe0, 0x40, 0x0, 0xe0} + +/* twosuperior (178) */ +#define NXFONT_METRICS_178 {1, 3, 3, 0, 0, 0} +#define NXFONT_BITMAP_178 {0xc0, 0x40, 0x60} + +/* threesuperior (179) */ +#define NXFONT_METRICS_179 {1, 3, 3, 0, 0, 0} +#define NXFONT_BITMAP_179 {0xe0, 0x60, 0xe0} + +/* acute (180) */ +#define NXFONT_METRICS_180 {1, 2, 2, 1, 0, 0} +#define NXFONT_BITMAP_180 {0x40, 0x80} + +/* mu (181) */ +#define NXFONT_METRICS_181 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_181 {0xa0, 0xa0, 0xa0, 0xc0, 0x80} + +/* paragraph (182) */ +#define NXFONT_METRICS_182 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_182 {0x60, 0xa0, 0x60, 0x60, 0x60} + +/* periodcentered (183) */ +#define NXFONT_METRICS_183 {1, 3, 3, 0, 1, 0} +#define NXFONT_BITMAP_183 {0xe0, 0xe0, 0xe0} + +/* cedilla (184) */ +#define NXFONT_METRICS_184 {1, 3, 3, 0, 2, 0} +#define NXFONT_BITMAP_184 {0x40, 0x20, 0xc0} + +/* onesuperior (185) */ +#define NXFONT_METRICS_185 {1, 1, 3, 1, 0, 0} +#define NXFONT_BITMAP_185 {0x80, 0x80, 0x80} + +/* ordmasculine (186) */ +#define NXFONT_METRICS_186 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_186 {0x40, 0xa0, 0x40, 0x0, 0xe0} + +/* guillemotright (187) */ +#define NXFONT_METRICS_187 {1, 2, 3, 1, 0, 0} +#define NXFONT_BITMAP_187 {0x80, 0x40, 0x80} + +/* onequarter (188) */ +#define NXFONT_METRICS_188 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_188 {0x80, 0x80, 0x0, 0x60, 0x20} + +/* onehalf (189) */ +#define NXFONT_METRICS_189 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_189 {0x80, 0x80, 0x0, 0xc0, 0x60} + +/* threequarters (190) */ +#define NXFONT_METRICS_190 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_190 {0xc0, 0xc0, 0x0, 0x60, 0x20} + +/* questiondown (191) */ +#define NXFONT_METRICS_191 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_191 {0x40, 0x0, 0x40, 0x80, 0xe0} + +/* Agrave (192) */ +#define NXFONT_METRICS_192 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_192 {0x40, 0x20, 0x40, 0xe0, 0xa0} + +/* Aacute (193) */ +#define NXFONT_METRICS_193 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_193 {0x40, 0x80, 0x40, 0xe0, 0xa0} + +/* Acircumflex (194) */ +#define NXFONT_METRICS_194 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_194 {0xe0, 0x0, 0x40, 0xe0, 0xa0} + +/* Atilde (195) */ +#define NXFONT_METRICS_195 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_195 {0x60, 0xc0, 0x40, 0xe0, 0xa0} + +/* Adieresis (196) */ +#define NXFONT_METRICS_196 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_196 {0xa0, 0x40, 0xa0, 0xe0, 0xa0} + +/* Aring (197) */ +#define NXFONT_METRICS_197 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_197 {0xc0, 0xc0, 0xa0, 0xe0, 0xa0} + +/* AE (198) */ +#define NXFONT_METRICS_198 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_198 {0x60, 0xc0, 0xe0, 0xc0, 0xe0} + +/* Ccedilla (199) */ +#define NXFONT_METRICS_199 {1, 3, 6, 0, 0, 0} +#define NXFONT_BITMAP_199 {0x60, 0x80, 0x80, 0x60, 0x20, 0x40} + +/* Egrave (200) */ +#define NXFONT_METRICS_200 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_200 {0x40, 0x20, 0xe0, 0xc0, 0xe0} + +/* Eacute (201) */ +#define NXFONT_METRICS_201 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_201 {0x40, 0x80, 0xe0, 0xc0, 0xe0} + +/* Ecircumflex (202) */ +#define NXFONT_METRICS_202 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_202 {0xe0, 0x0, 0xe0, 0xc0, 0xe0} + +/* Edieresis (203) */ +#define NXFONT_METRICS_203 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_203 {0xa0, 0x0, 0xe0, 0xc0, 0xe0} + +/* Igrave (204) */ +#define NXFONT_METRICS_204 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_204 {0x40, 0x20, 0xe0, 0x40, 0xe0} + +/* Iacute (205) */ +#define NXFONT_METRICS_205 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_205 {0x40, 0x80, 0xe0, 0x40, 0xe0} + +/* Icircumflex (206) */ +#define NXFONT_METRICS_206 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_206 {0xe0, 0x0, 0xe0, 0x40, 0xe0} + +/* Idieresis (207) */ +#define NXFONT_METRICS_207 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_207 {0xa0, 0x0, 0xe0, 0x40, 0xe0} + +/* Eth (208) */ +#define NXFONT_METRICS_208 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_208 {0xc0, 0xa0, 0xe0, 0xa0, 0xc0} + +/* Ntilde (209) */ +#define NXFONT_METRICS_209 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_209 {0xc0, 0x60, 0xa0, 0xe0, 0xa0} + +/* Ograve (210) */ +#define NXFONT_METRICS_210 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_210 {0x40, 0x20, 0xe0, 0xa0, 0xe0} + +/* Oacute (211) */ +#define NXFONT_METRICS_211 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_211 {0x40, 0x80, 0xe0, 0xa0, 0xe0} + +/* Ocircumflex (212) */ +#define NXFONT_METRICS_212 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_212 {0xe0, 0x0, 0xe0, 0xa0, 0xe0} + +/* Otilde (213) */ +#define NXFONT_METRICS_213 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_213 {0xc0, 0x60, 0xe0, 0xa0, 0xe0} + +/* Odieresis (214) */ +#define NXFONT_METRICS_214 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_214 {0xa0, 0x0, 0xe0, 0xa0, 0xe0} + +/* multiply (215) */ +#define NXFONT_METRICS_215 {1, 3, 3, 0, 1, 0} +#define NXFONT_BITMAP_215 {0xa0, 0x40, 0xa0} + +/* Oslash (216) */ +#define NXFONT_METRICS_216 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_216 {0x60, 0xa0, 0xe0, 0xa0, 0xc0} + +/* Ugrave (217) */ +#define NXFONT_METRICS_217 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_217 {0x80, 0x40, 0xa0, 0xa0, 0xe0} + +/* Uacute (218) */ +#define NXFONT_METRICS_218 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_218 {0x20, 0x40, 0xa0, 0xa0, 0xe0} + +/* Ucircumflex (219) */ +#define NXFONT_METRICS_219 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_219 {0xe0, 0x0, 0xa0, 0xa0, 0xe0} + +/* Udieresis (220) */ +#define NXFONT_METRICS_220 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_220 {0xa0, 0x0, 0xa0, 0xa0, 0xe0} + +/* Yacute (221) */ +#define NXFONT_METRICS_221 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_221 {0x20, 0x40, 0xa0, 0xe0, 0x40} + +/* Thorn (222) */ +#define NXFONT_METRICS_222 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_222 {0x80, 0xe0, 0xa0, 0xe0, 0x80} + +/* germandbls (223) */ +#define NXFONT_METRICS_223 {1, 3, 6, 0, 0, 0} +#define NXFONT_BITMAP_223 {0x60, 0xa0, 0xc0, 0xa0, 0xc0, 0x80} + +/* agrave (224) */ +#define NXFONT_METRICS_224 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_224 {0x40, 0x20, 0x60, 0xa0, 0xe0} + +/* aacute (225) */ +#define NXFONT_METRICS_225 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_225 {0x40, 0x80, 0x60, 0xa0, 0xe0} + +/* acircumflex (226) */ +#define NXFONT_METRICS_226 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_226 {0xe0, 0x0, 0x60, 0xa0, 0xe0} + +/* atilde (227) */ +#define NXFONT_METRICS_227 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_227 {0x60, 0xc0, 0x60, 0xa0, 0xe0} + +/* adieresis (228) */ +#define NXFONT_METRICS_228 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_228 {0xa0, 0x0, 0x60, 0xa0, 0xe0} + +/* aring (229) */ +#define NXFONT_METRICS_229 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_229 {0x60, 0x60, 0x60, 0xa0, 0xe0} + +/* ae (230) */ +#define NXFONT_METRICS_230 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_230 {0x60, 0xe0, 0xe0, 0xc0} + +/* ccedilla (231) */ +#define NXFONT_METRICS_231 {1, 3, 5, 0, 1, 0} +#define NXFONT_BITMAP_231 {0x60, 0x80, 0x60, 0x20, 0x40} + +/* egrave (232) */ +#define NXFONT_METRICS_232 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_232 {0x40, 0x20, 0x60, 0xe0, 0x60} + +/* eacute (233) */ +#define NXFONT_METRICS_233 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_233 {0x40, 0x80, 0x60, 0xe0, 0x60} + +/* ecircumflex (234) */ +#define NXFONT_METRICS_234 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_234 {0xe0, 0x0, 0x60, 0xe0, 0x60} + +/* edieresis (235) */ +#define NXFONT_METRICS_235 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_235 {0xa0, 0x0, 0x60, 0xe0, 0x60} + +/* igrave (236) */ +#define NXFONT_METRICS_236 {1, 2, 5, 1, 0, 0} +#define NXFONT_BITMAP_236 {0x80, 0x40, 0x80, 0x80, 0x80} + +/* iacute (237) */ +#define NXFONT_METRICS_237 {1, 2, 5, 0, 0, 0} +#define NXFONT_BITMAP_237 {0x40, 0x80, 0x40, 0x40, 0x40} + +/* icircumflex (238) */ +#define NXFONT_METRICS_238 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_238 {0xe0, 0x0, 0x40, 0x40, 0x40} + +/* idieresis (239) */ +#define NXFONT_METRICS_239 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_239 {0xa0, 0x0, 0x40, 0x40, 0x40} + +/* eth (240) */ +#define NXFONT_METRICS_240 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_240 {0x60, 0xc0, 0x60, 0xa0, 0x60} + +/* ntilde (241) */ +#define NXFONT_METRICS_241 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_241 {0xc0, 0x60, 0xc0, 0xa0, 0xa0} + +/* ograve (242) */ +#define NXFONT_METRICS_242 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_242 {0x40, 0x20, 0x40, 0xa0, 0x40} + +/* oacute (243) */ +#define NXFONT_METRICS_243 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_243 {0x40, 0x80, 0x40, 0xa0, 0x40} + +/* ocircumflex (244) */ +#define NXFONT_METRICS_244 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_244 {0xe0, 0x0, 0x40, 0xa0, 0x40} + +/* otilde (245) */ +#define NXFONT_METRICS_245 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_245 {0xc0, 0x60, 0x40, 0xa0, 0x40} + +/* odieresis (246) */ +#define NXFONT_METRICS_246 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_246 {0xa0, 0x0, 0x40, 0xa0, 0x40} + +/* divide (247) */ +#define NXFONT_METRICS_247 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_247 {0x40, 0x0, 0xe0, 0x0, 0x40} + +/* oslash (248) */ +#define NXFONT_METRICS_248 {1, 3, 4, 0, 1, 0} +#define NXFONT_BITMAP_248 {0x60, 0xe0, 0xa0, 0xc0} + +/* ugrave (249) */ +#define NXFONT_METRICS_249 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_249 {0x80, 0x40, 0xa0, 0xa0, 0x60} + +/* uacute (250) */ +#define NXFONT_METRICS_250 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_250 {0x20, 0x40, 0xa0, 0xa0, 0x60} + +/* ucircumflex (251) */ +#define NXFONT_METRICS_251 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_251 {0xe0, 0x0, 0xa0, 0xa0, 0x60} + +/* udieresis (252) */ +#define NXFONT_METRICS_252 {1, 3, 5, 0, 0, 0} +#define NXFONT_BITMAP_252 {0xa0, 0x0, 0xa0, 0xa0, 0x60} + +/* yacute (253) */ +#define NXFONT_METRICS_253 {1, 3, 6, 0, 0, 0} +#define NXFONT_BITMAP_253 {0x20, 0x40, 0xa0, 0x60, 0x20, 0x40} + +/* thorn (254) */ +#define NXFONT_METRICS_254 {1, 3, 5, 0, 1, 0} +#define NXFONT_BITMAP_254 {0x80, 0xc0, 0xa0, 0xc0, 0x80} + +/* ydieresis (255) */ +#define NXFONT_METRICS_255 {1, 3, 6, 0, 0, 0} +#define NXFONT_BITMAP_255 {0xa0, 0x0, 0xa0, 0x60, 0x20, 0x40} + +#endif From de718353d433eaafdc292fa849791a0aa4f1956a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 3 Jan 2017 11:23:58 -0600 Subject: [PATCH 18/22] Correct some comments --- libnx/nxfonts/nxfonts_getfont.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libnx/nxfonts/nxfonts_getfont.c b/libnx/nxfonts/nxfonts_getfont.c index aea6cba0e8..a3e034034a 100644 --- a/libnx/nxfonts/nxfonts_getfont.c +++ b/libnx/nxfonts/nxfonts_getfont.c @@ -49,7 +49,7 @@ #include "nxfonts.h" /**************************************************************************** - * Public Data + * Private Data ****************************************************************************/ /* MONO */ @@ -435,10 +435,6 @@ static FAR const struct nx_fontpackage_s *g_fontpackages[] = NULL }; -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ From 37668dc731f9991b10f85d27feaae02b650aa5c7 Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Wed, 4 Jan 2017 07:15:22 -0600 Subject: [PATCH 19/22] Fix font spacing --- libnx/nxfonts/nxfonts_tom-thumb-3x6.h | 344 +++++++++++++------------- 1 file changed, 172 insertions(+), 172 deletions(-) diff --git a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h index e34d082b2b..df342d1ea4 100644 --- a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h +++ b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h @@ -62,7 +62,7 @@ /* Maximum height and width of any glyph in the set */ #define NXFONT_MAXHEIGHT 6 -#define NXFONT_MAXWIDTH 3 +#define NXFONT_MAXWIDTH 4 /* The width of a space */ @@ -73,23 +73,23 @@ #define NXFONT_BITMAP_33 {0x80, 0x80, 0x80, 0x0, 0x80} /* quotedbl (34) */ -#define NXFONT_METRICS_34 {1, 3, 2, 0, 0, 0} +#define NXFONT_METRICS_34 {1, 3, 2, 1, 0, 0} #define NXFONT_BITMAP_34 {0xa0, 0xa0} /* numbersign (35) */ -#define NXFONT_METRICS_35 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_35 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_35 {0xa0, 0xe0, 0xa0, 0xe0, 0xa0} /* dollar (36) */ -#define NXFONT_METRICS_36 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_36 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_36 {0x60, 0xc0, 0x60, 0xc0, 0x40} /* percent (37) */ -#define NXFONT_METRICS_37 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_37 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_37 {0x80, 0x20, 0x40, 0x80, 0x20} /* ampersand (38) */ -#define NXFONT_METRICS_38 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_38 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_38 {0xc0, 0xc0, 0xe0, 0xa0, 0x60} /* quotesingle (39) */ @@ -101,15 +101,15 @@ #define NXFONT_BITMAP_40 {0x40, 0x80, 0x80, 0x80, 0x40} /* parenright (41) */ -#define NXFONT_METRICS_41 {1, 2, 5, 0, 0, 0} +#define NXFONT_METRICS_41 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_41 {0x80, 0x40, 0x40, 0x40, 0x80} /* asterisk (42) */ -#define NXFONT_METRICS_42 {1, 3, 3, 0, 0, 0} +#define NXFONT_METRICS_42 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_42 {0xa0, 0x40, 0xa0} /* plus (43) */ -#define NXFONT_METRICS_43 {1, 3, 3, 0, 1, 0} +#define NXFONT_METRICS_43 {1, 3, 3, 1, 1, 0} #define NXFONT_BITMAP_43 {0x40, 0xe0, 0x40} /* comma (44) */ @@ -125,47 +125,47 @@ #define NXFONT_BITMAP_46 {0x80} /* slash (47) */ -#define NXFONT_METRICS_47 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_47 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_47 {0x20, 0x20, 0x40, 0x80, 0x80} /* zero (48) */ -#define NXFONT_METRICS_48 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_48 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_48 {0x60, 0xa0, 0xa0, 0xa0, 0xc0} /* one (49) */ -#define NXFONT_METRICS_49 {1, 2, 5, 0, 0, 0} +#define NXFONT_METRICS_49 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_49 {0x40, 0xc0, 0x40, 0x40, 0x40} /* two (50) */ -#define NXFONT_METRICS_50 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_50 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_50 {0xc0, 0x20, 0x40, 0x80, 0xe0} /* three (51) */ -#define NXFONT_METRICS_51 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_51 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_51 {0xc0, 0x20, 0x40, 0x20, 0xc0} /* four (52) */ -#define NXFONT_METRICS_52 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_52 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_52 {0xa0, 0xa0, 0xe0, 0x20, 0x20} /* five (53) */ -#define NXFONT_METRICS_53 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_53 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_53 {0xe0, 0x80, 0xc0, 0x20, 0xc0} /* six (54) */ -#define NXFONT_METRICS_54 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_54 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_54 {0x60, 0x80, 0xe0, 0xa0, 0xe0} /* seven (55) */ -#define NXFONT_METRICS_55 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_55 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_55 {0xe0, 0x20, 0x40, 0x80, 0x80} /* eight (56) */ -#define NXFONT_METRICS_56 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_56 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_56 {0xe0, 0xa0, 0xe0, 0xa0, 0xe0} /* nine (57) */ -#define NXFONT_METRICS_57 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_57 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_57 {0xe0, 0xa0, 0xe0, 0x20, 0xc0} /* colon (58) */ @@ -173,147 +173,147 @@ #define NXFONT_BITMAP_58 {0x80, 0x0, 0x80} /* semicolon (59) */ -#define NXFONT_METRICS_59 {1, 2, 4, 0, 1, 0} +#define NXFONT_METRICS_59 {1, 2, 4, 1, 1, 0} #define NXFONT_BITMAP_59 {0x40, 0x0, 0x40, 0x80} /* less (60) */ -#define NXFONT_METRICS_60 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_60 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_60 {0x20, 0x40, 0x80, 0x40, 0x20} /* equal (61) */ -#define NXFONT_METRICS_61 {1, 3, 3, 0, 1, 0} +#define NXFONT_METRICS_61 {1, 3, 3, 1, 1, 0} #define NXFONT_BITMAP_61 {0xe0, 0x0, 0xe0} /* greater (62) */ -#define NXFONT_METRICS_62 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_62 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_62 {0x80, 0x40, 0x20, 0x40, 0x80} /* question (63) */ -#define NXFONT_METRICS_63 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_63 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_63 {0xe0, 0x20, 0x40, 0x0, 0x40} /* at (64) */ -#define NXFONT_METRICS_64 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_64 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_64 {0x40, 0xa0, 0xe0, 0x80, 0x60} /* A (65) */ -#define NXFONT_METRICS_65 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_65 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_65 {0x40, 0xa0, 0xe0, 0xa0, 0xa0} /* B (66) */ -#define NXFONT_METRICS_66 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_66 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_66 {0xc0, 0xa0, 0xc0, 0xa0, 0xc0} /* C (67) */ -#define NXFONT_METRICS_67 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_67 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_67 {0x60, 0x80, 0x80, 0x80, 0x60} /* D (68) */ -#define NXFONT_METRICS_68 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_68 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_68 {0xc0, 0xa0, 0xa0, 0xa0, 0xc0} /* E (69) */ -#define NXFONT_METRICS_69 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_69 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_69 {0xe0, 0x80, 0xe0, 0x80, 0xe0} /* F (70) */ -#define NXFONT_METRICS_70 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_70 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_70 {0xe0, 0x80, 0xe0, 0x80, 0x80} /* G (71) */ -#define NXFONT_METRICS_71 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_71 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_71 {0x60, 0x80, 0xe0, 0xa0, 0x60} /* H (72) */ -#define NXFONT_METRICS_72 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_72 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_72 {0xa0, 0xa0, 0xe0, 0xa0, 0xa0} /* I (73) */ -#define NXFONT_METRICS_73 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_73 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_73 {0xe0, 0x40, 0x40, 0x40, 0xe0} /* J (74) */ -#define NXFONT_METRICS_74 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_74 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_74 {0x20, 0x20, 0x20, 0xa0, 0x40} /* K (75) */ -#define NXFONT_METRICS_75 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_75 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_75 {0xa0, 0xa0, 0xc0, 0xa0, 0xa0} /* L (76) */ -#define NXFONT_METRICS_76 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_76 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_76 {0x80, 0x80, 0x80, 0x80, 0xe0} /* M (77) */ -#define NXFONT_METRICS_77 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_77 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_77 {0xa0, 0xe0, 0xe0, 0xa0, 0xa0} /* N (78) */ -#define NXFONT_METRICS_78 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_78 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_78 {0xa0, 0xe0, 0xe0, 0xe0, 0xa0} /* O (79) */ -#define NXFONT_METRICS_79 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_79 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_79 {0x40, 0xa0, 0xa0, 0xa0, 0x40} /* P (80) */ -#define NXFONT_METRICS_80 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_80 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_80 {0xc0, 0xa0, 0xc0, 0x80, 0x80} /* Q (81) */ -#define NXFONT_METRICS_81 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_81 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_81 {0x40, 0xa0, 0xa0, 0xe0, 0x60} /* R (82) */ -#define NXFONT_METRICS_82 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_82 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_82 {0xc0, 0xa0, 0xe0, 0xc0, 0xa0} /* S (83) */ -#define NXFONT_METRICS_83 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_83 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_83 {0x60, 0x80, 0x40, 0x20, 0xc0} /* T (84) */ -#define NXFONT_METRICS_84 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_84 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_84 {0xe0, 0x40, 0x40, 0x40, 0x40} /* U (85) */ -#define NXFONT_METRICS_85 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_85 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_85 {0xa0, 0xa0, 0xa0, 0xa0, 0x60} /* V (86) */ -#define NXFONT_METRICS_86 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_86 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_86 {0xa0, 0xa0, 0xa0, 0x40, 0x40} /* W (87) */ -#define NXFONT_METRICS_87 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_87 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_87 {0xa0, 0xa0, 0xe0, 0xe0, 0xa0} /* X (88) */ -#define NXFONT_METRICS_88 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_88 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_88 {0xa0, 0xa0, 0x40, 0xa0, 0xa0} /* Y (89) */ -#define NXFONT_METRICS_89 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_89 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_89 {0xa0, 0xa0, 0x40, 0x40, 0x40} /* Z (90) */ -#define NXFONT_METRICS_90 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_90 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_90 {0xe0, 0x20, 0x40, 0x80, 0xe0} /* bracketleft (91) */ -#define NXFONT_METRICS_91 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_91 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_91 {0xe0, 0x80, 0x80, 0x80, 0xe0} /* backslash (92) */ -#define NXFONT_METRICS_92 {1, 3, 3, 0, 1, 0} +#define NXFONT_METRICS_92 {1, 3, 3, 1, 1, 0} #define NXFONT_BITMAP_92 {0x80, 0x40, 0x20} /* bracketright (93) */ -#define NXFONT_METRICS_93 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_93 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_93 {0xe0, 0x20, 0x20, 0x20, 0xe0} /* asciicircum (94) */ -#define NXFONT_METRICS_94 {1, 3, 2, 0, 0, 0} +#define NXFONT_METRICS_94 {1, 3, 2, 1, 0, 0} #define NXFONT_BITMAP_94 {0x40, 0xa0} /* underscore (95) */ @@ -321,39 +321,39 @@ #define NXFONT_BITMAP_95 {0xe0} /* grave (96) */ -#define NXFONT_METRICS_96 {1, 2, 2, 0, 0, 0} +#define NXFONT_METRICS_96 {1, 2, 2, 1, 0, 0} #define NXFONT_BITMAP_96 {0x80, 0x40} /* a (97) */ -#define NXFONT_METRICS_97 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_97 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_97 {0xc0, 0x60, 0xa0, 0xe0} /* b (98) */ -#define NXFONT_METRICS_98 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_98 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_98 {0x80, 0xc0, 0xa0, 0xa0, 0xc0} /* c (99) */ -#define NXFONT_METRICS_99 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_99 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_99 {0x60, 0x80, 0x80, 0x60} /* d (100) */ -#define NXFONT_METRICS_100 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_100 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_100 {0x20, 0x60, 0xa0, 0xa0, 0x60} /* e (101) */ -#define NXFONT_METRICS_101 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_101 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_101 {0x60, 0xa0, 0xc0, 0x60} /* f (102) */ -#define NXFONT_METRICS_102 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_102 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_102 {0x20, 0x40, 0xe0, 0x40, 0x40} /* g (103) */ -#define NXFONT_METRICS_103 {1, 3, 5, 0, 1, 0} +#define NXFONT_METRICS_103 {1, 3, 5, 1, 1, 0} #define NXFONT_BITMAP_103 {0x60, 0xa0, 0xe0, 0x20, 0x40} /* h (104) */ -#define NXFONT_METRICS_104 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_104 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_104 {0x80, 0xc0, 0xa0, 0xa0, 0xa0} /* i (105) */ @@ -361,75 +361,75 @@ #define NXFONT_BITMAP_105 {0x80, 0x0, 0x80, 0x80, 0x80} /* j (106) */ -#define NXFONT_METRICS_106 {1, 3, 6, 0, 0, 0} +#define NXFONT_METRICS_106 {1, 3, 6, 1, 0, 0} #define NXFONT_BITMAP_106 {0x20, 0x0, 0x20, 0x20, 0xa0, 0x40} /* k (107) */ -#define NXFONT_METRICS_107 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_107 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_107 {0x80, 0xa0, 0xc0, 0xc0, 0xa0} /* l (108) */ -#define NXFONT_METRICS_108 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_108 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_108 {0xc0, 0x40, 0x40, 0x40, 0xe0} /* m (109) */ -#define NXFONT_METRICS_109 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_109 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_109 {0xe0, 0xe0, 0xe0, 0xa0} /* n (110) */ -#define NXFONT_METRICS_110 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_110 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_110 {0xc0, 0xa0, 0xa0, 0xa0} /* o (111) */ -#define NXFONT_METRICS_111 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_111 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_111 {0x40, 0xa0, 0xa0, 0x40} /* p (112) */ -#define NXFONT_METRICS_112 {1, 3, 5, 0, 1, 0} +#define NXFONT_METRICS_112 {1, 3, 5, 1, 1, 0} #define NXFONT_BITMAP_112 {0xc0, 0xa0, 0xa0, 0xc0, 0x80} /* q (113) */ -#define NXFONT_METRICS_113 {1, 3, 5, 0, 1, 0} +#define NXFONT_METRICS_113 {1, 3, 5, 1, 1, 0} #define NXFONT_BITMAP_113 {0x60, 0xa0, 0xa0, 0x60, 0x20} /* r (114) */ -#define NXFONT_METRICS_114 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_114 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_114 {0x60, 0x80, 0x80, 0x80} /* s (115) */ -#define NXFONT_METRICS_115 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_115 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_115 {0x60, 0xc0, 0x60, 0xc0} /* t (116) */ -#define NXFONT_METRICS_116 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_116 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_116 {0x40, 0xe0, 0x40, 0x40, 0x60} /* u (117) */ -#define NXFONT_METRICS_117 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_117 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_117 {0xa0, 0xa0, 0xa0, 0x60} /* v (118) */ -#define NXFONT_METRICS_118 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_118 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_118 {0xa0, 0xa0, 0xe0, 0x40} /* w (119) */ -#define NXFONT_METRICS_119 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_119 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_119 {0xa0, 0xe0, 0xe0, 0xe0} /* x (120) */ -#define NXFONT_METRICS_120 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_120 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_120 {0xa0, 0x40, 0x40, 0xa0} /* y (121) */ -#define NXFONT_METRICS_121 {1, 3, 5, 0, 1, 0} +#define NXFONT_METRICS_121 {1, 3, 5, 1, 1, 0} #define NXFONT_BITMAP_121 {0xa0, 0xa0, 0x60, 0x20, 0x40} /* z (122) */ -#define NXFONT_METRICS_122 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_122 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_122 {0xe0, 0x60, 0xc0, 0xe0} /* braceleft (123) */ -#define NXFONT_METRICS_123 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_123 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_123 {0x60, 0x40, 0x80, 0x40, 0x60} /* bar (124) */ @@ -437,11 +437,11 @@ #define NXFONT_BITMAP_124 {0x80, 0x80, 0x0, 0x80, 0x80} /* braceright (125) */ -#define NXFONT_METRICS_125 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_125 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_125 {0xc0, 0x40, 0x20, 0x40, 0xc0} /* asciitilde (126) */ -#define NXFONT_METRICS_126 {1, 3, 2, 0, 0, 0} +#define NXFONT_METRICS_126 {1, 3, 2, 1, 0, 0} #define NXFONT_BITMAP_126 {0x60, 0xc0} /* exclamdown (161) */ @@ -449,19 +449,19 @@ #define NXFONT_BITMAP_161 {0x80, 0x0, 0x80, 0x80, 0x80} /* cent (162) */ -#define NXFONT_METRICS_162 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_162 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_162 {0x40, 0xe0, 0x80, 0xe0, 0x40} /* sterling (163) */ -#define NXFONT_METRICS_163 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_163 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_163 {0x60, 0x40, 0xe0, 0x40, 0xe0} /* currency (164) */ -#define NXFONT_METRICS_164 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_164 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_164 {0xa0, 0x40, 0xe0, 0x40, 0xa0} /* yen (165) */ -#define NXFONT_METRICS_165 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_165 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_165 {0xa0, 0xa0, 0x40, 0xe0, 0x40} /* brokenbar (166) */ @@ -469,27 +469,27 @@ #define NXFONT_BITMAP_166 {0x80, 0x80, 0x0, 0x80, 0x80} /* section (167) */ -#define NXFONT_METRICS_167 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_167 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_167 {0x60, 0x40, 0xa0, 0x40, 0xc0} /* dieresis (168) */ -#define NXFONT_METRICS_168 {1, 3, 1, 0, 0, 0} +#define NXFONT_METRICS_168 {1, 3, 1, 1, 0, 0} #define NXFONT_BITMAP_168 {0xa0} /* copyright (169) */ -#define NXFONT_METRICS_169 {1, 3, 3, 0, 0, 0} +#define NXFONT_METRICS_169 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_169 {0x60, 0x80, 0x60} /* ordfeminine (170) */ -#define NXFONT_METRICS_170 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_170 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_170 {0x60, 0xa0, 0xe0, 0x0, 0xe0} /* guillemotleft (171) */ -#define NXFONT_METRICS_171 {1, 2, 3, 0, 0, 0} +#define NXFONT_METRICS_171 {1, 2, 3, 1, 0, 0} #define NXFONT_BITMAP_171 {0x40, 0x80, 0x40} /* logicalnot (172) */ -#define NXFONT_METRICS_172 {1, 3, 2, 0, 1, 0} +#define NXFONT_METRICS_172 {1, 3, 2, 1, 1, 0} #define NXFONT_BITMAP_172 {0xe0, 0x20} /* softhyphen (173) */ @@ -497,27 +497,27 @@ #define NXFONT_BITMAP_173 {0xc0} /* registered (174) */ -#define NXFONT_METRICS_174 {1, 3, 3, 0, 0, 0} +#define NXFONT_METRICS_174 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_174 {0xc0, 0xc0, 0xa0} /* macron (175) */ -#define NXFONT_METRICS_175 {1, 3, 1, 0, 0, 0} +#define NXFONT_METRICS_175 {1, 3, 1, 1, 0, 0} #define NXFONT_BITMAP_175 {0xe0} /* degree (176) */ -#define NXFONT_METRICS_176 {1, 3, 3, 0, 0, 0} +#define NXFONT_METRICS_176 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_176 {0x40, 0xa0, 0x40} /* plusminus (177) */ -#define NXFONT_METRICS_177 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_177 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_177 {0x40, 0xe0, 0x40, 0x0, 0xe0} /* twosuperior (178) */ -#define NXFONT_METRICS_178 {1, 3, 3, 0, 0, 0} +#define NXFONT_METRICS_178 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_178 {0xc0, 0x40, 0x60} /* threesuperior (179) */ -#define NXFONT_METRICS_179 {1, 3, 3, 0, 0, 0} +#define NXFONT_METRICS_179 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_179 {0xe0, 0x60, 0xe0} /* acute (180) */ @@ -525,15 +525,15 @@ #define NXFONT_BITMAP_180 {0x40, 0x80} /* mu (181) */ -#define NXFONT_METRICS_181 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_181 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_181 {0xa0, 0xa0, 0xa0, 0xc0, 0x80} /* paragraph (182) */ -#define NXFONT_METRICS_182 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_182 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_182 {0x60, 0xa0, 0x60, 0x60, 0x60} /* periodcentered (183) */ -#define NXFONT_METRICS_183 {1, 3, 3, 0, 1, 0} +#define NXFONT_METRICS_183 {1, 3, 3, 1, 1, 0} #define NXFONT_BITMAP_183 {0xe0, 0xe0, 0xe0} /* cedilla (184) */ @@ -545,7 +545,7 @@ #define NXFONT_BITMAP_185 {0x80, 0x80, 0x80} /* ordmasculine (186) */ -#define NXFONT_METRICS_186 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_186 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_186 {0x40, 0xa0, 0x40, 0x0, 0xe0} /* guillemotright (187) */ @@ -553,195 +553,195 @@ #define NXFONT_BITMAP_187 {0x80, 0x40, 0x80} /* onequarter (188) */ -#define NXFONT_METRICS_188 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_188 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_188 {0x80, 0x80, 0x0, 0x60, 0x20} /* onehalf (189) */ -#define NXFONT_METRICS_189 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_189 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_189 {0x80, 0x80, 0x0, 0xc0, 0x60} /* threequarters (190) */ -#define NXFONT_METRICS_190 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_190 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_190 {0xc0, 0xc0, 0x0, 0x60, 0x20} /* questiondown (191) */ -#define NXFONT_METRICS_191 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_191 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_191 {0x40, 0x0, 0x40, 0x80, 0xe0} /* Agrave (192) */ -#define NXFONT_METRICS_192 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_192 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_192 {0x40, 0x20, 0x40, 0xe0, 0xa0} /* Aacute (193) */ -#define NXFONT_METRICS_193 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_193 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_193 {0x40, 0x80, 0x40, 0xe0, 0xa0} /* Acircumflex (194) */ -#define NXFONT_METRICS_194 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_194 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_194 {0xe0, 0x0, 0x40, 0xe0, 0xa0} /* Atilde (195) */ -#define NXFONT_METRICS_195 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_195 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_195 {0x60, 0xc0, 0x40, 0xe0, 0xa0} /* Adieresis (196) */ -#define NXFONT_METRICS_196 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_196 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_196 {0xa0, 0x40, 0xa0, 0xe0, 0xa0} /* Aring (197) */ -#define NXFONT_METRICS_197 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_197 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_197 {0xc0, 0xc0, 0xa0, 0xe0, 0xa0} /* AE (198) */ -#define NXFONT_METRICS_198 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_198 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_198 {0x60, 0xc0, 0xe0, 0xc0, 0xe0} /* Ccedilla (199) */ -#define NXFONT_METRICS_199 {1, 3, 6, 0, 0, 0} +#define NXFONT_METRICS_199 {1, 3, 6, 1, 0, 0} #define NXFONT_BITMAP_199 {0x60, 0x80, 0x80, 0x60, 0x20, 0x40} /* Egrave (200) */ -#define NXFONT_METRICS_200 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_200 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_200 {0x40, 0x20, 0xe0, 0xc0, 0xe0} /* Eacute (201) */ -#define NXFONT_METRICS_201 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_201 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_201 {0x40, 0x80, 0xe0, 0xc0, 0xe0} /* Ecircumflex (202) */ -#define NXFONT_METRICS_202 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_202 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_202 {0xe0, 0x0, 0xe0, 0xc0, 0xe0} /* Edieresis (203) */ -#define NXFONT_METRICS_203 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_203 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_203 {0xa0, 0x0, 0xe0, 0xc0, 0xe0} /* Igrave (204) */ -#define NXFONT_METRICS_204 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_204 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_204 {0x40, 0x20, 0xe0, 0x40, 0xe0} /* Iacute (205) */ -#define NXFONT_METRICS_205 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_205 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_205 {0x40, 0x80, 0xe0, 0x40, 0xe0} /* Icircumflex (206) */ -#define NXFONT_METRICS_206 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_206 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_206 {0xe0, 0x0, 0xe0, 0x40, 0xe0} /* Idieresis (207) */ -#define NXFONT_METRICS_207 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_207 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_207 {0xa0, 0x0, 0xe0, 0x40, 0xe0} /* Eth (208) */ -#define NXFONT_METRICS_208 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_208 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_208 {0xc0, 0xa0, 0xe0, 0xa0, 0xc0} /* Ntilde (209) */ -#define NXFONT_METRICS_209 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_209 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_209 {0xc0, 0x60, 0xa0, 0xe0, 0xa0} /* Ograve (210) */ -#define NXFONT_METRICS_210 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_210 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_210 {0x40, 0x20, 0xe0, 0xa0, 0xe0} /* Oacute (211) */ -#define NXFONT_METRICS_211 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_211 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_211 {0x40, 0x80, 0xe0, 0xa0, 0xe0} /* Ocircumflex (212) */ -#define NXFONT_METRICS_212 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_212 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_212 {0xe0, 0x0, 0xe0, 0xa0, 0xe0} /* Otilde (213) */ -#define NXFONT_METRICS_213 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_213 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_213 {0xc0, 0x60, 0xe0, 0xa0, 0xe0} /* Odieresis (214) */ -#define NXFONT_METRICS_214 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_214 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_214 {0xa0, 0x0, 0xe0, 0xa0, 0xe0} /* multiply (215) */ -#define NXFONT_METRICS_215 {1, 3, 3, 0, 1, 0} +#define NXFONT_METRICS_215 {1, 3, 3, 1, 1, 0} #define NXFONT_BITMAP_215 {0xa0, 0x40, 0xa0} /* Oslash (216) */ -#define NXFONT_METRICS_216 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_216 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_216 {0x60, 0xa0, 0xe0, 0xa0, 0xc0} /* Ugrave (217) */ -#define NXFONT_METRICS_217 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_217 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_217 {0x80, 0x40, 0xa0, 0xa0, 0xe0} /* Uacute (218) */ -#define NXFONT_METRICS_218 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_218 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_218 {0x20, 0x40, 0xa0, 0xa0, 0xe0} /* Ucircumflex (219) */ -#define NXFONT_METRICS_219 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_219 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_219 {0xe0, 0x0, 0xa0, 0xa0, 0xe0} /* Udieresis (220) */ -#define NXFONT_METRICS_220 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_220 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_220 {0xa0, 0x0, 0xa0, 0xa0, 0xe0} /* Yacute (221) */ -#define NXFONT_METRICS_221 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_221 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_221 {0x20, 0x40, 0xa0, 0xe0, 0x40} /* Thorn (222) */ -#define NXFONT_METRICS_222 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_222 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_222 {0x80, 0xe0, 0xa0, 0xe0, 0x80} /* germandbls (223) */ -#define NXFONT_METRICS_223 {1, 3, 6, 0, 0, 0} +#define NXFONT_METRICS_223 {1, 3, 6, 1, 0, 0} #define NXFONT_BITMAP_223 {0x60, 0xa0, 0xc0, 0xa0, 0xc0, 0x80} /* agrave (224) */ -#define NXFONT_METRICS_224 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_224 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_224 {0x40, 0x20, 0x60, 0xa0, 0xe0} /* aacute (225) */ -#define NXFONT_METRICS_225 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_225 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_225 {0x40, 0x80, 0x60, 0xa0, 0xe0} /* acircumflex (226) */ -#define NXFONT_METRICS_226 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_226 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_226 {0xe0, 0x0, 0x60, 0xa0, 0xe0} /* atilde (227) */ -#define NXFONT_METRICS_227 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_227 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_227 {0x60, 0xc0, 0x60, 0xa0, 0xe0} /* adieresis (228) */ -#define NXFONT_METRICS_228 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_228 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_228 {0xa0, 0x0, 0x60, 0xa0, 0xe0} /* aring (229) */ -#define NXFONT_METRICS_229 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_229 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_229 {0x60, 0x60, 0x60, 0xa0, 0xe0} /* ae (230) */ -#define NXFONT_METRICS_230 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_230 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_230 {0x60, 0xe0, 0xe0, 0xc0} /* ccedilla (231) */ -#define NXFONT_METRICS_231 {1, 3, 5, 0, 1, 0} +#define NXFONT_METRICS_231 {1, 3, 5, 1, 1, 0} #define NXFONT_BITMAP_231 {0x60, 0x80, 0x60, 0x20, 0x40} /* egrave (232) */ -#define NXFONT_METRICS_232 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_232 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_232 {0x40, 0x20, 0x60, 0xe0, 0x60} /* eacute (233) */ -#define NXFONT_METRICS_233 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_233 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_233 {0x40, 0x80, 0x60, 0xe0, 0x60} /* ecircumflex (234) */ -#define NXFONT_METRICS_234 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_234 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_234 {0xe0, 0x0, 0x60, 0xe0, 0x60} /* edieresis (235) */ -#define NXFONT_METRICS_235 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_235 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_235 {0xa0, 0x0, 0x60, 0xe0, 0x60} /* igrave (236) */ @@ -749,79 +749,79 @@ #define NXFONT_BITMAP_236 {0x80, 0x40, 0x80, 0x80, 0x80} /* iacute (237) */ -#define NXFONT_METRICS_237 {1, 2, 5, 0, 0, 0} +#define NXFONT_METRICS_237 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_237 {0x40, 0x80, 0x40, 0x40, 0x40} /* icircumflex (238) */ -#define NXFONT_METRICS_238 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_238 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_238 {0xe0, 0x0, 0x40, 0x40, 0x40} /* idieresis (239) */ -#define NXFONT_METRICS_239 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_239 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_239 {0xa0, 0x0, 0x40, 0x40, 0x40} /* eth (240) */ -#define NXFONT_METRICS_240 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_240 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_240 {0x60, 0xc0, 0x60, 0xa0, 0x60} /* ntilde (241) */ -#define NXFONT_METRICS_241 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_241 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_241 {0xc0, 0x60, 0xc0, 0xa0, 0xa0} /* ograve (242) */ -#define NXFONT_METRICS_242 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_242 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_242 {0x40, 0x20, 0x40, 0xa0, 0x40} /* oacute (243) */ -#define NXFONT_METRICS_243 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_243 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_243 {0x40, 0x80, 0x40, 0xa0, 0x40} /* ocircumflex (244) */ -#define NXFONT_METRICS_244 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_244 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_244 {0xe0, 0x0, 0x40, 0xa0, 0x40} /* otilde (245) */ -#define NXFONT_METRICS_245 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_245 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_245 {0xc0, 0x60, 0x40, 0xa0, 0x40} /* odieresis (246) */ -#define NXFONT_METRICS_246 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_246 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_246 {0xa0, 0x0, 0x40, 0xa0, 0x40} /* divide (247) */ -#define NXFONT_METRICS_247 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_247 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_247 {0x40, 0x0, 0xe0, 0x0, 0x40} /* oslash (248) */ -#define NXFONT_METRICS_248 {1, 3, 4, 0, 1, 0} +#define NXFONT_METRICS_248 {1, 3, 4, 1, 1, 0} #define NXFONT_BITMAP_248 {0x60, 0xe0, 0xa0, 0xc0} /* ugrave (249) */ -#define NXFONT_METRICS_249 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_249 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_249 {0x80, 0x40, 0xa0, 0xa0, 0x60} /* uacute (250) */ -#define NXFONT_METRICS_250 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_250 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_250 {0x20, 0x40, 0xa0, 0xa0, 0x60} /* ucircumflex (251) */ -#define NXFONT_METRICS_251 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_251 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_251 {0xe0, 0x0, 0xa0, 0xa0, 0x60} /* udieresis (252) */ -#define NXFONT_METRICS_252 {1, 3, 5, 0, 0, 0} +#define NXFONT_METRICS_252 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_252 {0xa0, 0x0, 0xa0, 0xa0, 0x60} /* yacute (253) */ -#define NXFONT_METRICS_253 {1, 3, 6, 0, 0, 0} +#define NXFONT_METRICS_253 {1, 3, 6, 1, 0, 0} #define NXFONT_BITMAP_253 {0x20, 0x40, 0xa0, 0x60, 0x20, 0x40} /* thorn (254) */ -#define NXFONT_METRICS_254 {1, 3, 5, 0, 1, 0} +#define NXFONT_METRICS_254 {1, 3, 5, 1, 1, 0} #define NXFONT_BITMAP_254 {0x80, 0xc0, 0xa0, 0xc0, 0x80} /* ydieresis (255) */ -#define NXFONT_METRICS_255 {1, 3, 6, 0, 0, 0} +#define NXFONT_METRICS_255 {1, 3, 6, 1, 0, 0} #define NXFONT_BITMAP_255 {0xa0, 0x0, 0xa0, 0x60, 0x20, 0x40} #endif From b08b38d976842439a63b7501bc43d6f6ce2e9be6 Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Wed, 4 Jan 2017 08:00:00 -0600 Subject: [PATCH 20/22] Back out part of last change --- libnx/nxfonts/nxfonts_tom-thumb-3x6.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h index df342d1ea4..ccbc8a4df3 100644 --- a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h +++ b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h @@ -62,7 +62,7 @@ /* Maximum height and width of any glyph in the set */ #define NXFONT_MAXHEIGHT 6 -#define NXFONT_MAXWIDTH 4 +#define NXFONT_MAXWIDTH 3 /* The width of a space */ From 1ff532e484eab99e53e7c9e178584846cfd25856 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 4 Jan 2017 10:22:44 -0600 Subject: [PATCH 21/22] Alternative way to encode font spacing for Tom Thumb font --- libnx/nxfonts/nxfonts_tom-thumb-3x6.h | 380 +++++++++++++------------- 1 file changed, 190 insertions(+), 190 deletions(-) diff --git a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h index ccbc8a4df3..a6a2f28d4d 100644 --- a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h +++ b/libnx/nxfonts/nxfonts_tom-thumb-3x6.h @@ -62,766 +62,766 @@ /* Maximum height and width of any glyph in the set */ #define NXFONT_MAXHEIGHT 6 -#define NXFONT_MAXWIDTH 3 +#define NXFONT_MAXWIDTH 4 /* The width of a space */ #define NXFONT_SPACEWIDTH 4 /* exclam (33) */ -#define NXFONT_METRICS_33 {1, 1, 5, 1, 0, 0} +#define NXFONT_METRICS_33 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_33 {0x80, 0x80, 0x80, 0x0, 0x80} /* quotedbl (34) */ -#define NXFONT_METRICS_34 {1, 3, 2, 1, 0, 0} +#define NXFONT_METRICS_34 {1, 4, 2, 0, 0, 0} #define NXFONT_BITMAP_34 {0xa0, 0xa0} /* numbersign (35) */ -#define NXFONT_METRICS_35 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_35 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_35 {0xa0, 0xe0, 0xa0, 0xe0, 0xa0} /* dollar (36) */ -#define NXFONT_METRICS_36 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_36 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_36 {0x60, 0xc0, 0x60, 0xc0, 0x40} /* percent (37) */ -#define NXFONT_METRICS_37 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_37 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_37 {0x80, 0x20, 0x40, 0x80, 0x20} /* ampersand (38) */ -#define NXFONT_METRICS_38 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_38 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_38 {0xc0, 0xc0, 0xe0, 0xa0, 0x60} /* quotesingle (39) */ -#define NXFONT_METRICS_39 {1, 1, 2, 1, 0, 0} +#define NXFONT_METRICS_39 {1, 2, 2, 1, 0, 0} #define NXFONT_BITMAP_39 {0x80, 0x80} /* parenleft (40) */ -#define NXFONT_METRICS_40 {1, 2, 5, 1, 0, 0} +#define NXFONT_METRICS_40 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_40 {0x40, 0x80, 0x80, 0x80, 0x40} /* parenright (41) */ -#define NXFONT_METRICS_41 {1, 2, 5, 1, 0, 0} +#define NXFONT_METRICS_41 {1, 3, 5, 0, 0, 0} #define NXFONT_BITMAP_41 {0x80, 0x40, 0x40, 0x40, 0x80} /* asterisk (42) */ -#define NXFONT_METRICS_42 {1, 3, 3, 1, 0, 0} +#define NXFONT_METRICS_42 {1, 4, 3, 0, 0, 0} #define NXFONT_BITMAP_42 {0xa0, 0x40, 0xa0} /* plus (43) */ -#define NXFONT_METRICS_43 {1, 3, 3, 1, 1, 0} +#define NXFONT_METRICS_43 {1, 4, 3, 0, 1, 0} #define NXFONT_BITMAP_43 {0x40, 0xe0, 0x40} /* comma (44) */ -#define NXFONT_METRICS_44 {1, 2, 2, 0, 3, 0} +#define NXFONT_METRICS_44 {1, 3, 2, 0, 3, 0} #define NXFONT_BITMAP_44 {0x40, 0x80} /* hyphen (45) */ -#define NXFONT_METRICS_45 {1, 3, 1, 0, 2, 0} +#define NXFONT_METRICS_45 {1, 4, 1, 0, 2, 0} #define NXFONT_BITMAP_45 {0xe0} /* period (46) */ -#define NXFONT_METRICS_46 {1, 1, 1, 1, 4, 0} +#define NXFONT_METRICS_46 {1, 2, 1, 1, 4, 0} #define NXFONT_BITMAP_46 {0x80} /* slash (47) */ -#define NXFONT_METRICS_47 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_47 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_47 {0x20, 0x20, 0x40, 0x80, 0x80} /* zero (48) */ -#define NXFONT_METRICS_48 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_48 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_48 {0x60, 0xa0, 0xa0, 0xa0, 0xc0} /* one (49) */ -#define NXFONT_METRICS_49 {1, 2, 5, 1, 0, 0} +#define NXFONT_METRICS_49 {1, 3, 5, 0, 0, 0} #define NXFONT_BITMAP_49 {0x40, 0xc0, 0x40, 0x40, 0x40} /* two (50) */ -#define NXFONT_METRICS_50 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_50 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_50 {0xc0, 0x20, 0x40, 0x80, 0xe0} /* three (51) */ -#define NXFONT_METRICS_51 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_51 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_51 {0xc0, 0x20, 0x40, 0x20, 0xc0} /* four (52) */ -#define NXFONT_METRICS_52 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_52 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_52 {0xa0, 0xa0, 0xe0, 0x20, 0x20} /* five (53) */ -#define NXFONT_METRICS_53 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_53 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_53 {0xe0, 0x80, 0xc0, 0x20, 0xc0} /* six (54) */ -#define NXFONT_METRICS_54 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_54 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_54 {0x60, 0x80, 0xe0, 0xa0, 0xe0} /* seven (55) */ -#define NXFONT_METRICS_55 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_55 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_55 {0xe0, 0x20, 0x40, 0x80, 0x80} /* eight (56) */ -#define NXFONT_METRICS_56 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_56 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_56 {0xe0, 0xa0, 0xe0, 0xa0, 0xe0} /* nine (57) */ -#define NXFONT_METRICS_57 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_57 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_57 {0xe0, 0xa0, 0xe0, 0x20, 0xc0} /* colon (58) */ -#define NXFONT_METRICS_58 {1, 1, 3, 1, 1, 0} +#define NXFONT_METRICS_58 {1, 2, 3, 1, 1, 0} #define NXFONT_BITMAP_58 {0x80, 0x0, 0x80} /* semicolon (59) */ -#define NXFONT_METRICS_59 {1, 2, 4, 1, 1, 0} +#define NXFONT_METRICS_59 {1, 3, 4, 0, 1, 0} #define NXFONT_BITMAP_59 {0x40, 0x0, 0x40, 0x80} /* less (60) */ -#define NXFONT_METRICS_60 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_60 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_60 {0x20, 0x40, 0x80, 0x40, 0x20} /* equal (61) */ -#define NXFONT_METRICS_61 {1, 3, 3, 1, 1, 0} +#define NXFONT_METRICS_61 {1, 4, 3, 0, 1, 0} #define NXFONT_BITMAP_61 {0xe0, 0x0, 0xe0} /* greater (62) */ -#define NXFONT_METRICS_62 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_62 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_62 {0x80, 0x40, 0x20, 0x40, 0x80} /* question (63) */ -#define NXFONT_METRICS_63 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_63 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_63 {0xe0, 0x20, 0x40, 0x0, 0x40} /* at (64) */ -#define NXFONT_METRICS_64 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_64 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_64 {0x40, 0xa0, 0xe0, 0x80, 0x60} /* A (65) */ -#define NXFONT_METRICS_65 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_65 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_65 {0x40, 0xa0, 0xe0, 0xa0, 0xa0} /* B (66) */ -#define NXFONT_METRICS_66 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_66 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_66 {0xc0, 0xa0, 0xc0, 0xa0, 0xc0} /* C (67) */ -#define NXFONT_METRICS_67 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_67 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_67 {0x60, 0x80, 0x80, 0x80, 0x60} /* D (68) */ -#define NXFONT_METRICS_68 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_68 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_68 {0xc0, 0xa0, 0xa0, 0xa0, 0xc0} /* E (69) */ -#define NXFONT_METRICS_69 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_69 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_69 {0xe0, 0x80, 0xe0, 0x80, 0xe0} /* F (70) */ -#define NXFONT_METRICS_70 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_70 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_70 {0xe0, 0x80, 0xe0, 0x80, 0x80} /* G (71) */ -#define NXFONT_METRICS_71 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_71 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_71 {0x60, 0x80, 0xe0, 0xa0, 0x60} /* H (72) */ -#define NXFONT_METRICS_72 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_72 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_72 {0xa0, 0xa0, 0xe0, 0xa0, 0xa0} /* I (73) */ -#define NXFONT_METRICS_73 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_73 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_73 {0xe0, 0x40, 0x40, 0x40, 0xe0} /* J (74) */ -#define NXFONT_METRICS_74 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_74 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_74 {0x20, 0x20, 0x20, 0xa0, 0x40} /* K (75) */ -#define NXFONT_METRICS_75 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_75 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_75 {0xa0, 0xa0, 0xc0, 0xa0, 0xa0} /* L (76) */ -#define NXFONT_METRICS_76 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_76 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_76 {0x80, 0x80, 0x80, 0x80, 0xe0} /* M (77) */ -#define NXFONT_METRICS_77 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_77 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_77 {0xa0, 0xe0, 0xe0, 0xa0, 0xa0} /* N (78) */ -#define NXFONT_METRICS_78 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_78 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_78 {0xa0, 0xe0, 0xe0, 0xe0, 0xa0} /* O (79) */ -#define NXFONT_METRICS_79 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_79 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_79 {0x40, 0xa0, 0xa0, 0xa0, 0x40} /* P (80) */ -#define NXFONT_METRICS_80 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_80 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_80 {0xc0, 0xa0, 0xc0, 0x80, 0x80} /* Q (81) */ -#define NXFONT_METRICS_81 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_81 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_81 {0x40, 0xa0, 0xa0, 0xe0, 0x60} /* R (82) */ -#define NXFONT_METRICS_82 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_82 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_82 {0xc0, 0xa0, 0xe0, 0xc0, 0xa0} /* S (83) */ -#define NXFONT_METRICS_83 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_83 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_83 {0x60, 0x80, 0x40, 0x20, 0xc0} /* T (84) */ -#define NXFONT_METRICS_84 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_84 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_84 {0xe0, 0x40, 0x40, 0x40, 0x40} /* U (85) */ -#define NXFONT_METRICS_85 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_85 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_85 {0xa0, 0xa0, 0xa0, 0xa0, 0x60} /* V (86) */ -#define NXFONT_METRICS_86 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_86 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_86 {0xa0, 0xa0, 0xa0, 0x40, 0x40} /* W (87) */ -#define NXFONT_METRICS_87 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_87 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_87 {0xa0, 0xa0, 0xe0, 0xe0, 0xa0} /* X (88) */ -#define NXFONT_METRICS_88 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_88 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_88 {0xa0, 0xa0, 0x40, 0xa0, 0xa0} /* Y (89) */ -#define NXFONT_METRICS_89 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_89 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_89 {0xa0, 0xa0, 0x40, 0x40, 0x40} /* Z (90) */ -#define NXFONT_METRICS_90 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_90 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_90 {0xe0, 0x20, 0x40, 0x80, 0xe0} /* bracketleft (91) */ -#define NXFONT_METRICS_91 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_91 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_91 {0xe0, 0x80, 0x80, 0x80, 0xe0} /* backslash (92) */ -#define NXFONT_METRICS_92 {1, 3, 3, 1, 1, 0} +#define NXFONT_METRICS_92 {1, 4, 3, 0, 1, 0} #define NXFONT_BITMAP_92 {0x80, 0x40, 0x20} /* bracketright (93) */ -#define NXFONT_METRICS_93 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_93 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_93 {0xe0, 0x20, 0x20, 0x20, 0xe0} /* asciicircum (94) */ -#define NXFONT_METRICS_94 {1, 3, 2, 1, 0, 0} +#define NXFONT_METRICS_94 {1, 4, 2, 0, 0, 0} #define NXFONT_BITMAP_94 {0x40, 0xa0} /* underscore (95) */ -#define NXFONT_METRICS_95 {1, 3, 1, 0, 4, 0} +#define NXFONT_METRICS_95 {1, 4, 1, 0, 4, 0} #define NXFONT_BITMAP_95 {0xe0} /* grave (96) */ -#define NXFONT_METRICS_96 {1, 2, 2, 1, 0, 0} +#define NXFONT_METRICS_96 {1, 3, 2, 0, 0, 0} #define NXFONT_BITMAP_96 {0x80, 0x40} /* a (97) */ -#define NXFONT_METRICS_97 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_97 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_97 {0xc0, 0x60, 0xa0, 0xe0} /* b (98) */ -#define NXFONT_METRICS_98 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_98 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_98 {0x80, 0xc0, 0xa0, 0xa0, 0xc0} /* c (99) */ -#define NXFONT_METRICS_99 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_99 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_99 {0x60, 0x80, 0x80, 0x60} /* d (100) */ -#define NXFONT_METRICS_100 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_100 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_100 {0x20, 0x60, 0xa0, 0xa0, 0x60} /* e (101) */ -#define NXFONT_METRICS_101 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_101 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_101 {0x60, 0xa0, 0xc0, 0x60} /* f (102) */ -#define NXFONT_METRICS_102 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_102 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_102 {0x20, 0x40, 0xe0, 0x40, 0x40} /* g (103) */ -#define NXFONT_METRICS_103 {1, 3, 5, 1, 1, 0} +#define NXFONT_METRICS_103 {1, 4, 5, 0, 1, 0} #define NXFONT_BITMAP_103 {0x60, 0xa0, 0xe0, 0x20, 0x40} /* h (104) */ -#define NXFONT_METRICS_104 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_104 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_104 {0x80, 0xc0, 0xa0, 0xa0, 0xa0} /* i (105) */ -#define NXFONT_METRICS_105 {1, 1, 5, 1, 0, 0} +#define NXFONT_METRICS_105 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_105 {0x80, 0x0, 0x80, 0x80, 0x80} /* j (106) */ -#define NXFONT_METRICS_106 {1, 3, 6, 1, 0, 0} +#define NXFONT_METRICS_106 {1, 4, 6, 0, 0, 0} #define NXFONT_BITMAP_106 {0x20, 0x0, 0x20, 0x20, 0xa0, 0x40} /* k (107) */ -#define NXFONT_METRICS_107 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_107 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_107 {0x80, 0xa0, 0xc0, 0xc0, 0xa0} /* l (108) */ -#define NXFONT_METRICS_108 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_108 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_108 {0xc0, 0x40, 0x40, 0x40, 0xe0} /* m (109) */ -#define NXFONT_METRICS_109 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_109 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_109 {0xe0, 0xe0, 0xe0, 0xa0} /* n (110) */ -#define NXFONT_METRICS_110 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_110 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_110 {0xc0, 0xa0, 0xa0, 0xa0} /* o (111) */ -#define NXFONT_METRICS_111 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_111 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_111 {0x40, 0xa0, 0xa0, 0x40} /* p (112) */ -#define NXFONT_METRICS_112 {1, 3, 5, 1, 1, 0} +#define NXFONT_METRICS_112 {1, 4, 5, 0, 1, 0} #define NXFONT_BITMAP_112 {0xc0, 0xa0, 0xa0, 0xc0, 0x80} /* q (113) */ -#define NXFONT_METRICS_113 {1, 3, 5, 1, 1, 0} +#define NXFONT_METRICS_113 {1, 4, 5, 0, 1, 0} #define NXFONT_BITMAP_113 {0x60, 0xa0, 0xa0, 0x60, 0x20} /* r (114) */ -#define NXFONT_METRICS_114 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_114 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_114 {0x60, 0x80, 0x80, 0x80} /* s (115) */ -#define NXFONT_METRICS_115 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_115 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_115 {0x60, 0xc0, 0x60, 0xc0} /* t (116) */ -#define NXFONT_METRICS_116 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_116 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_116 {0x40, 0xe0, 0x40, 0x40, 0x60} /* u (117) */ -#define NXFONT_METRICS_117 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_117 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_117 {0xa0, 0xa0, 0xa0, 0x60} /* v (118) */ -#define NXFONT_METRICS_118 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_118 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_118 {0xa0, 0xa0, 0xe0, 0x40} /* w (119) */ -#define NXFONT_METRICS_119 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_119 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_119 {0xa0, 0xe0, 0xe0, 0xe0} /* x (120) */ -#define NXFONT_METRICS_120 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_120 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_120 {0xa0, 0x40, 0x40, 0xa0} /* y (121) */ -#define NXFONT_METRICS_121 {1, 3, 5, 1, 1, 0} +#define NXFONT_METRICS_121 {1, 4, 5, 0, 1, 0} #define NXFONT_BITMAP_121 {0xa0, 0xa0, 0x60, 0x20, 0x40} /* z (122) */ -#define NXFONT_METRICS_122 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_122 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_122 {0xe0, 0x60, 0xc0, 0xe0} /* braceleft (123) */ -#define NXFONT_METRICS_123 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_123 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_123 {0x60, 0x40, 0x80, 0x40, 0x60} /* bar (124) */ -#define NXFONT_METRICS_124 {1, 1, 5, 1, 0, 0} +#define NXFONT_METRICS_124 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_124 {0x80, 0x80, 0x0, 0x80, 0x80} /* braceright (125) */ -#define NXFONT_METRICS_125 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_125 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_125 {0xc0, 0x40, 0x20, 0x40, 0xc0} /* asciitilde (126) */ -#define NXFONT_METRICS_126 {1, 3, 2, 1, 0, 0} +#define NXFONT_METRICS_126 {1, 4, 2, 0, 0, 0} #define NXFONT_BITMAP_126 {0x60, 0xc0} /* exclamdown (161) */ -#define NXFONT_METRICS_161 {1, 1, 5, 1, 0, 0} +#define NXFONT_METRICS_161 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_161 {0x80, 0x0, 0x80, 0x80, 0x80} /* cent (162) */ -#define NXFONT_METRICS_162 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_162 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_162 {0x40, 0xe0, 0x80, 0xe0, 0x40} /* sterling (163) */ -#define NXFONT_METRICS_163 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_163 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_163 {0x60, 0x40, 0xe0, 0x40, 0xe0} /* currency (164) */ -#define NXFONT_METRICS_164 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_164 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_164 {0xa0, 0x40, 0xe0, 0x40, 0xa0} /* yen (165) */ -#define NXFONT_METRICS_165 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_165 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_165 {0xa0, 0xa0, 0x40, 0xe0, 0x40} /* brokenbar (166) */ -#define NXFONT_METRICS_166 {1, 1, 5, 1, 0, 0} +#define NXFONT_METRICS_166 {1, 2, 5, 1, 0, 0} #define NXFONT_BITMAP_166 {0x80, 0x80, 0x0, 0x80, 0x80} /* section (167) */ -#define NXFONT_METRICS_167 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_167 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_167 {0x60, 0x40, 0xa0, 0x40, 0xc0} /* dieresis (168) */ -#define NXFONT_METRICS_168 {1, 3, 1, 1, 0, 0} +#define NXFONT_METRICS_168 {1, 4, 1, 0, 0, 0} #define NXFONT_BITMAP_168 {0xa0} /* copyright (169) */ -#define NXFONT_METRICS_169 {1, 3, 3, 1, 0, 0} +#define NXFONT_METRICS_169 {1, 4, 3, 0, 0, 0} #define NXFONT_BITMAP_169 {0x60, 0x80, 0x60} /* ordfeminine (170) */ -#define NXFONT_METRICS_170 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_170 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_170 {0x60, 0xa0, 0xe0, 0x0, 0xe0} /* guillemotleft (171) */ -#define NXFONT_METRICS_171 {1, 2, 3, 1, 0, 0} +#define NXFONT_METRICS_171 {1, 3, 3, 0, 0, 0} #define NXFONT_BITMAP_171 {0x40, 0x80, 0x40} /* logicalnot (172) */ -#define NXFONT_METRICS_172 {1, 3, 2, 1, 1, 0} +#define NXFONT_METRICS_172 {1, 4, 2, 0, 1, 0} #define NXFONT_BITMAP_172 {0xe0, 0x20} /* softhyphen (173) */ -#define NXFONT_METRICS_173 {1, 2, 1, 0, 2, 0} +#define NXFONT_METRICS_173 {1, 3, 1, 0, 2, 0} #define NXFONT_BITMAP_173 {0xc0} /* registered (174) */ -#define NXFONT_METRICS_174 {1, 3, 3, 1, 0, 0} +#define NXFONT_METRICS_174 {1, 4, 3, 0, 0, 0} #define NXFONT_BITMAP_174 {0xc0, 0xc0, 0xa0} /* macron (175) */ -#define NXFONT_METRICS_175 {1, 3, 1, 1, 0, 0} +#define NXFONT_METRICS_175 {1, 4, 1, 0, 0, 0} #define NXFONT_BITMAP_175 {0xe0} /* degree (176) */ -#define NXFONT_METRICS_176 {1, 3, 3, 1, 0, 0} +#define NXFONT_METRICS_176 {1, 4, 3, 0, 0, 0} #define NXFONT_BITMAP_176 {0x40, 0xa0, 0x40} /* plusminus (177) */ -#define NXFONT_METRICS_177 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_177 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_177 {0x40, 0xe0, 0x40, 0x0, 0xe0} /* twosuperior (178) */ -#define NXFONT_METRICS_178 {1, 3, 3, 1, 0, 0} +#define NXFONT_METRICS_178 {1, 4, 3, 0, 0, 0} #define NXFONT_BITMAP_178 {0xc0, 0x40, 0x60} /* threesuperior (179) */ -#define NXFONT_METRICS_179 {1, 3, 3, 1, 0, 0} +#define NXFONT_METRICS_179 {1, 4, 3, 0, 0, 0} #define NXFONT_BITMAP_179 {0xe0, 0x60, 0xe0} /* acute (180) */ -#define NXFONT_METRICS_180 {1, 2, 2, 1, 0, 0} +#define NXFONT_METRICS_180 {1, 3, 2, 1, 0, 0} #define NXFONT_BITMAP_180 {0x40, 0x80} /* mu (181) */ -#define NXFONT_METRICS_181 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_181 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_181 {0xa0, 0xa0, 0xa0, 0xc0, 0x80} /* paragraph (182) */ -#define NXFONT_METRICS_182 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_182 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_182 {0x60, 0xa0, 0x60, 0x60, 0x60} /* periodcentered (183) */ -#define NXFONT_METRICS_183 {1, 3, 3, 1, 1, 0} +#define NXFONT_METRICS_183 {1, 4, 3, 0, 1, 0} #define NXFONT_BITMAP_183 {0xe0, 0xe0, 0xe0} /* cedilla (184) */ -#define NXFONT_METRICS_184 {1, 3, 3, 0, 2, 0} +#define NXFONT_METRICS_184 {1, 4, 3, 0, 2, 0} #define NXFONT_BITMAP_184 {0x40, 0x20, 0xc0} /* onesuperior (185) */ -#define NXFONT_METRICS_185 {1, 1, 3, 1, 0, 0} +#define NXFONT_METRICS_185 {1, 2, 3, 1, 0, 0} #define NXFONT_BITMAP_185 {0x80, 0x80, 0x80} /* ordmasculine (186) */ -#define NXFONT_METRICS_186 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_186 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_186 {0x40, 0xa0, 0x40, 0x0, 0xe0} /* guillemotright (187) */ -#define NXFONT_METRICS_187 {1, 2, 3, 1, 0, 0} +#define NXFONT_METRICS_187 {1, 3, 3, 1, 0, 0} #define NXFONT_BITMAP_187 {0x80, 0x40, 0x80} /* onequarter (188) */ -#define NXFONT_METRICS_188 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_188 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_188 {0x80, 0x80, 0x0, 0x60, 0x20} /* onehalf (189) */ -#define NXFONT_METRICS_189 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_189 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_189 {0x80, 0x80, 0x0, 0xc0, 0x60} /* threequarters (190) */ -#define NXFONT_METRICS_190 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_190 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_190 {0xc0, 0xc0, 0x0, 0x60, 0x20} /* questiondown (191) */ -#define NXFONT_METRICS_191 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_191 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_191 {0x40, 0x0, 0x40, 0x80, 0xe0} /* Agrave (192) */ -#define NXFONT_METRICS_192 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_192 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_192 {0x40, 0x20, 0x40, 0xe0, 0xa0} /* Aacute (193) */ -#define NXFONT_METRICS_193 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_193 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_193 {0x40, 0x80, 0x40, 0xe0, 0xa0} /* Acircumflex (194) */ -#define NXFONT_METRICS_194 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_194 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_194 {0xe0, 0x0, 0x40, 0xe0, 0xa0} /* Atilde (195) */ -#define NXFONT_METRICS_195 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_195 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_195 {0x60, 0xc0, 0x40, 0xe0, 0xa0} /* Adieresis (196) */ -#define NXFONT_METRICS_196 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_196 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_196 {0xa0, 0x40, 0xa0, 0xe0, 0xa0} /* Aring (197) */ -#define NXFONT_METRICS_197 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_197 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_197 {0xc0, 0xc0, 0xa0, 0xe0, 0xa0} /* AE (198) */ -#define NXFONT_METRICS_198 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_198 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_198 {0x60, 0xc0, 0xe0, 0xc0, 0xe0} /* Ccedilla (199) */ -#define NXFONT_METRICS_199 {1, 3, 6, 1, 0, 0} +#define NXFONT_METRICS_199 {1, 4, 6, 0, 0, 0} #define NXFONT_BITMAP_199 {0x60, 0x80, 0x80, 0x60, 0x20, 0x40} /* Egrave (200) */ -#define NXFONT_METRICS_200 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_200 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_200 {0x40, 0x20, 0xe0, 0xc0, 0xe0} /* Eacute (201) */ -#define NXFONT_METRICS_201 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_201 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_201 {0x40, 0x80, 0xe0, 0xc0, 0xe0} /* Ecircumflex (202) */ -#define NXFONT_METRICS_202 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_202 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_202 {0xe0, 0x0, 0xe0, 0xc0, 0xe0} /* Edieresis (203) */ -#define NXFONT_METRICS_203 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_203 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_203 {0xa0, 0x0, 0xe0, 0xc0, 0xe0} /* Igrave (204) */ -#define NXFONT_METRICS_204 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_204 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_204 {0x40, 0x20, 0xe0, 0x40, 0xe0} /* Iacute (205) */ -#define NXFONT_METRICS_205 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_205 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_205 {0x40, 0x80, 0xe0, 0x40, 0xe0} /* Icircumflex (206) */ -#define NXFONT_METRICS_206 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_206 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_206 {0xe0, 0x0, 0xe0, 0x40, 0xe0} /* Idieresis (207) */ -#define NXFONT_METRICS_207 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_207 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_207 {0xa0, 0x0, 0xe0, 0x40, 0xe0} /* Eth (208) */ -#define NXFONT_METRICS_208 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_208 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_208 {0xc0, 0xa0, 0xe0, 0xa0, 0xc0} /* Ntilde (209) */ -#define NXFONT_METRICS_209 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_209 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_209 {0xc0, 0x60, 0xa0, 0xe0, 0xa0} /* Ograve (210) */ -#define NXFONT_METRICS_210 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_210 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_210 {0x40, 0x20, 0xe0, 0xa0, 0xe0} /* Oacute (211) */ -#define NXFONT_METRICS_211 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_211 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_211 {0x40, 0x80, 0xe0, 0xa0, 0xe0} /* Ocircumflex (212) */ -#define NXFONT_METRICS_212 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_212 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_212 {0xe0, 0x0, 0xe0, 0xa0, 0xe0} /* Otilde (213) */ -#define NXFONT_METRICS_213 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_213 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_213 {0xc0, 0x60, 0xe0, 0xa0, 0xe0} /* Odieresis (214) */ -#define NXFONT_METRICS_214 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_214 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_214 {0xa0, 0x0, 0xe0, 0xa0, 0xe0} /* multiply (215) */ -#define NXFONT_METRICS_215 {1, 3, 3, 1, 1, 0} +#define NXFONT_METRICS_215 {1, 4, 3, 0, 1, 0} #define NXFONT_BITMAP_215 {0xa0, 0x40, 0xa0} /* Oslash (216) */ -#define NXFONT_METRICS_216 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_216 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_216 {0x60, 0xa0, 0xe0, 0xa0, 0xc0} /* Ugrave (217) */ -#define NXFONT_METRICS_217 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_217 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_217 {0x80, 0x40, 0xa0, 0xa0, 0xe0} /* Uacute (218) */ -#define NXFONT_METRICS_218 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_218 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_218 {0x20, 0x40, 0xa0, 0xa0, 0xe0} /* Ucircumflex (219) */ -#define NXFONT_METRICS_219 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_219 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_219 {0xe0, 0x0, 0xa0, 0xa0, 0xe0} /* Udieresis (220) */ -#define NXFONT_METRICS_220 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_220 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_220 {0xa0, 0x0, 0xa0, 0xa0, 0xe0} /* Yacute (221) */ -#define NXFONT_METRICS_221 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_221 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_221 {0x20, 0x40, 0xa0, 0xe0, 0x40} /* Thorn (222) */ -#define NXFONT_METRICS_222 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_222 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_222 {0x80, 0xe0, 0xa0, 0xe0, 0x80} /* germandbls (223) */ -#define NXFONT_METRICS_223 {1, 3, 6, 1, 0, 0} +#define NXFONT_METRICS_223 {1, 4, 6, 0, 0, 0} #define NXFONT_BITMAP_223 {0x60, 0xa0, 0xc0, 0xa0, 0xc0, 0x80} /* agrave (224) */ -#define NXFONT_METRICS_224 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_224 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_224 {0x40, 0x20, 0x60, 0xa0, 0xe0} /* aacute (225) */ -#define NXFONT_METRICS_225 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_225 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_225 {0x40, 0x80, 0x60, 0xa0, 0xe0} /* acircumflex (226) */ -#define NXFONT_METRICS_226 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_226 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_226 {0xe0, 0x0, 0x60, 0xa0, 0xe0} /* atilde (227) */ -#define NXFONT_METRICS_227 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_227 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_227 {0x60, 0xc0, 0x60, 0xa0, 0xe0} /* adieresis (228) */ -#define NXFONT_METRICS_228 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_228 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_228 {0xa0, 0x0, 0x60, 0xa0, 0xe0} /* aring (229) */ -#define NXFONT_METRICS_229 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_229 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_229 {0x60, 0x60, 0x60, 0xa0, 0xe0} /* ae (230) */ -#define NXFONT_METRICS_230 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_230 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_230 {0x60, 0xe0, 0xe0, 0xc0} /* ccedilla (231) */ -#define NXFONT_METRICS_231 {1, 3, 5, 1, 1, 0} +#define NXFONT_METRICS_231 {1, 4, 5, 0, 1, 0} #define NXFONT_BITMAP_231 {0x60, 0x80, 0x60, 0x20, 0x40} /* egrave (232) */ -#define NXFONT_METRICS_232 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_232 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_232 {0x40, 0x20, 0x60, 0xe0, 0x60} /* eacute (233) */ -#define NXFONT_METRICS_233 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_233 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_233 {0x40, 0x80, 0x60, 0xe0, 0x60} /* ecircumflex (234) */ -#define NXFONT_METRICS_234 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_234 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_234 {0xe0, 0x0, 0x60, 0xe0, 0x60} /* edieresis (235) */ -#define NXFONT_METRICS_235 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_235 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_235 {0xa0, 0x0, 0x60, 0xe0, 0x60} /* igrave (236) */ -#define NXFONT_METRICS_236 {1, 2, 5, 1, 0, 0} +#define NXFONT_METRICS_236 {1, 3, 5, 1, 0, 0} #define NXFONT_BITMAP_236 {0x80, 0x40, 0x80, 0x80, 0x80} /* iacute (237) */ -#define NXFONT_METRICS_237 {1, 2, 5, 1, 0, 0} +#define NXFONT_METRICS_237 {1, 3, 5, 0, 0, 0} #define NXFONT_BITMAP_237 {0x40, 0x80, 0x40, 0x40, 0x40} /* icircumflex (238) */ -#define NXFONT_METRICS_238 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_238 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_238 {0xe0, 0x0, 0x40, 0x40, 0x40} /* idieresis (239) */ -#define NXFONT_METRICS_239 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_239 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_239 {0xa0, 0x0, 0x40, 0x40, 0x40} /* eth (240) */ -#define NXFONT_METRICS_240 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_240 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_240 {0x60, 0xc0, 0x60, 0xa0, 0x60} /* ntilde (241) */ -#define NXFONT_METRICS_241 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_241 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_241 {0xc0, 0x60, 0xc0, 0xa0, 0xa0} /* ograve (242) */ -#define NXFONT_METRICS_242 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_242 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_242 {0x40, 0x20, 0x40, 0xa0, 0x40} /* oacute (243) */ -#define NXFONT_METRICS_243 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_243 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_243 {0x40, 0x80, 0x40, 0xa0, 0x40} /* ocircumflex (244) */ -#define NXFONT_METRICS_244 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_244 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_244 {0xe0, 0x0, 0x40, 0xa0, 0x40} /* otilde (245) */ -#define NXFONT_METRICS_245 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_245 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_245 {0xc0, 0x60, 0x40, 0xa0, 0x40} /* odieresis (246) */ -#define NXFONT_METRICS_246 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_246 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_246 {0xa0, 0x0, 0x40, 0xa0, 0x40} /* divide (247) */ -#define NXFONT_METRICS_247 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_247 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_247 {0x40, 0x0, 0xe0, 0x0, 0x40} /* oslash (248) */ -#define NXFONT_METRICS_248 {1, 3, 4, 1, 1, 0} +#define NXFONT_METRICS_248 {1, 4, 4, 0, 1, 0} #define NXFONT_BITMAP_248 {0x60, 0xe0, 0xa0, 0xc0} /* ugrave (249) */ -#define NXFONT_METRICS_249 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_249 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_249 {0x80, 0x40, 0xa0, 0xa0, 0x60} /* uacute (250) */ -#define NXFONT_METRICS_250 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_250 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_250 {0x20, 0x40, 0xa0, 0xa0, 0x60} /* ucircumflex (251) */ -#define NXFONT_METRICS_251 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_251 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_251 {0xe0, 0x0, 0xa0, 0xa0, 0x60} /* udieresis (252) */ -#define NXFONT_METRICS_252 {1, 3, 5, 1, 0, 0} +#define NXFONT_METRICS_252 {1, 4, 5, 0, 0, 0} #define NXFONT_BITMAP_252 {0xa0, 0x0, 0xa0, 0xa0, 0x60} /* yacute (253) */ -#define NXFONT_METRICS_253 {1, 3, 6, 1, 0, 0} +#define NXFONT_METRICS_253 {1, 4, 6, 0, 0, 0} #define NXFONT_BITMAP_253 {0x20, 0x40, 0xa0, 0x60, 0x20, 0x40} /* thorn (254) */ -#define NXFONT_METRICS_254 {1, 3, 5, 1, 1, 0} +#define NXFONT_METRICS_254 {1, 4, 5, 0, 1, 0} #define NXFONT_BITMAP_254 {0x80, 0xc0, 0xa0, 0xc0, 0x80} /* ydieresis (255) */ -#define NXFONT_METRICS_255 {1, 3, 6, 1, 0, 0} +#define NXFONT_METRICS_255 {1, 4, 6, 0, 0, 0} #define NXFONT_BITMAP_255 {0xa0, 0x0, 0xa0, 0x60, 0x20, 0x40} #endif From d91cf5736e80b9a5b44bf6b8eb6be8a9cb6b0f8c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 4 Jan 2017 10:31:53 -0600 Subject: [PATCH 22/22] With last changes the Tom Thumb 3x5 font is now 4x6 --- graphics/Kconfig | 8 ++++---- include/nuttx/nx/nxfonts.h | 10 +++++----- libnx/Makefile | 2 +- libnx/nxfonts/Make.defs | 6 +++--- libnx/nxfonts/Makefile.sources | 6 +++--- libnx/nxfonts/nxfonts_bitmaps.c | 2 +- libnx/nxfonts/nxfonts_getfont.c | 10 +++++----- ...nxfonts_tom-thumb-3x6.h => nxfonts_tom-thumb-4x6.h} | 8 ++++---- 8 files changed, 26 insertions(+), 26 deletions(-) rename libnx/nxfonts/{nxfonts_tom-thumb-3x6.h => nxfonts_tom-thumb-4x6.h} (99%) diff --git a/graphics/Kconfig b/graphics/Kconfig index b58b2c11ba..4347326f84 100644 --- a/graphics/Kconfig +++ b/graphics/Kconfig @@ -555,12 +555,12 @@ config NXFONT_X11_MISC_FIXED_10X20 This option enables support for a "x11-misc-fixed-10x20". (font ID FONTID_X11_MISC_FIXED_10X20 == 42). -config NXFONT_TOM_THUMB_3X6 - bool "Tom Thumb Monospace 3x6" +config NXFONT_TOM_THUMB_4X6 + bool "Tom Thumb Monospace 4x6" default n ---help--- - This option enables support for a small, 3x5 font. - (font ID FONTID_TOM_THUMB_3X6 == 43). + This option enables support for a small, 3x5 font (with blank space + padding to 4x6) (font ID FONTID_TOM_THUMB_4X6 == 43). endmenu diff --git a/include/nuttx/nx/nxfonts.h b/include/nuttx/nx/nxfonts.h index a7ba1a2318..aca51a0874 100644 --- a/include/nuttx/nx/nxfonts.h +++ b/include/nuttx/nx/nxfonts.h @@ -195,10 +195,10 @@ #elif defined(CONFIG_NXFONT_MONO5X8) # define NXFONT_DEFAULT FONTID_MONO5X8 -/* Tom Thumb mono-space 3x6 font */ +/* Tom Thumb mono-space 4x6 font */ -#elif defined(CONFIG_NXFONT_TOM_THUMB_3X6) -# define NXFONT_DEFAULT FONTID_TOM_THUMB_3X6 +#elif defined(CONFIG_NXFONT_TOM_THUMB_4X6) +# define NXFONT_DEFAULT FONTID_TOM_THUMB_4X6 #endif @@ -394,8 +394,8 @@ enum nx_fontid_e , FONTID_X11_MISC_FIXED_10X20 = 42 /* X11 misc fixed 10x20 */ #endif -#ifdef CONFIG_NXFONT_TOM_THUMB_3X6 - , FONTID_TOM_THUMB_3X6 = 43 /* Tom Thumb monospace 3x6 */ +#ifdef CONFIG_NXFONT_TOM_THUMB_4X6 + , FONTID_TOM_THUMB_4X6 = 43 /* Tom Thumb monospace 4x6 */ #endif }; diff --git a/libnx/Makefile b/libnx/Makefile index 20de21cb01..af0da579f4 100644 --- a/libnx/Makefile +++ b/libnx/Makefile @@ -225,7 +225,7 @@ ifeq ($(CONFIG_NXFONT_X11_MISC_FIXED_10X20),y) $(Q) $(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=42 EXTRADEFINES=$(EXTRADEFINES) endif -ifeq ($(CONFIG_NXFONT_TOM_THUMB_3X6),y) +ifeq ($(CONFIG_NXFONT_TOM_THUMB_4X6),y) $(Q) $(MAKE) -C nxfonts -f Makefile.sources TOPDIR=$(TOPDIR) NXFONTS_FONTID=43 EXTRADEFINES=$(EXTRADEFINES) endif diff --git a/libnx/nxfonts/Make.defs b/libnx/nxfonts/Make.defs index 8d9c08af90..9403f08bdd 100644 --- a/libnx/nxfonts/Make.defs +++ b/libnx/nxfonts/Make.defs @@ -225,10 +225,10 @@ ifeq ($(CONFIG_NXFONT_X11_MISC_FIXED_10X20),y) CSRCS += nxfonts_bitmaps_x11-misc-fixed-10x20.c endif -# Tom Thumb mono-space 3x6 font +# Tom Thumb mono-space 4x6 font -ifeq ($(CONFIG_NXFONT_TOM_THUMB_3X6),y) -CSRCS += nxfonts_tom-thumb-3x6.c +ifeq ($(CONFIG_NXFONT_TOM_THUMB_4X6),y) +CSRCS += nxfonts_tom-thumb-4x6.c endif # Add the nxfont/ directory to the build diff --git a/libnx/nxfonts/Makefile.sources b/libnx/nxfonts/Makefile.sources index 3046fbe83b..5c079cddcc 100644 --- a/libnx/nxfonts/Makefile.sources +++ b/libnx/nxfonts/Makefile.sources @@ -296,11 +296,11 @@ NXFONTS_PREFIX := g_x11_misc_fixed_10x20_ GEN_CSRC = nxfonts_bitmaps_x11-misc-fixed-10x20.c endif -# Tom Thumb mono-space 3x6 font +# Tom Thumb mono-space 4x6 font ifeq ($(NXFONTS_FONTID),43) -NXFONTS_PREFIX := g_tom_thumb_3x6_ -GEN_CSRC = nxfonts_tom-thumb-3x6.c +NXFONTS_PREFIX := g_tom_thumb_4x6_ +GEN_CSRC = nxfonts_tom-thumb-4x6.c endif DEPENDENCY := nxfonts_bitmaps.c diff --git a/libnx/nxfonts/nxfonts_bitmaps.c b/libnx/nxfonts/nxfonts_bitmaps.c index 57ac0852a3..b9a6fc1ca4 100644 --- a/libnx/nxfonts/nxfonts_bitmaps.c +++ b/libnx/nxfonts/nxfonts_bitmaps.c @@ -131,7 +131,7 @@ #elif NXFONTS_FONTID == 42 # include "nxfonts_x11-misc-fixed-10x20.h" #elif NXFONTS_FONTID == 43 -# include "nxfonts_tom-thumb-3x6.h" +# include "nxfonts_tom-thumb-4x6.h" #else # error "No font ID specified" #endif diff --git a/libnx/nxfonts/nxfonts_getfont.c b/libnx/nxfonts/nxfonts_getfont.c index a3e034034a..afe0f7bc68 100644 --- a/libnx/nxfonts/nxfonts_getfont.c +++ b/libnx/nxfonts/nxfonts_getfont.c @@ -238,8 +238,8 @@ extern const struct nx_fontpackage_s g_x11_misc_fixed_9x18B_package; extern const struct nx_fontpackage_s g_x11_misc_fixed_10x20_package; #endif -#ifdef CONFIG_NXFONT_TOM_THUMB_3X6 -extern const struct nx_fontpackage_s g_tom_thumb_3x6_package; +#ifdef CONFIG_NXFONT_TOM_THUMB_4X6 +extern const struct nx_fontpackage_s g_tom_thumb_4x6_package; #endif static FAR const struct nx_fontpackage_s *g_fontpackages[] = @@ -426,10 +426,10 @@ static FAR const struct nx_fontpackage_s *g_fontpackages[] = &g_x11_misc_fixed_10x20_package, #endif -/* Tom Thumb mono-space 3x6 font */ +/* Tom Thumb mono-space 4x6 font */ -#ifdef CONFIG_NXFONT_TOM_THUMB_3X6 - &g_tom_thumb_3x6_package, +#ifdef CONFIG_NXFONT_TOM_THUMB_4X6 + &g_tom_thumb_4x6_package, #endif NULL diff --git a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h b/libnx/nxfonts/nxfonts_tom-thumb-4x6.h similarity index 99% rename from libnx/nxfonts/nxfonts_tom-thumb-3x6.h rename to libnx/nxfonts/nxfonts_tom-thumb-4x6.h index a6a2f28d4d..dcd34efe97 100644 --- a/libnx/nxfonts/nxfonts_tom-thumb-3x6.h +++ b/libnx/nxfonts/nxfonts_tom-thumb-4x6.h @@ -1,5 +1,5 @@ /**************************************************************************** - * libnx/nxfonts/nxfonts_tom-thumb-3x6.h + * libnx/nxfonts/nxfonts_tom-thumb-4x6.h * * Copyright (C) 2017 Alan Carvalho de Assis. All rights reserved. * Author: Alan Carvalho de Assis @@ -36,8 +36,8 @@ * ****************************************************************************/ -#ifndef __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_3X6_H -#define __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_3X6_H +#ifndef __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_4X6_H +#define __LIBNX_NXFONTS_NXFONTS_TOM_THUMB_4X6_H /**************************************************************************** * Included Files @@ -49,7 +49,7 @@ /* Font ID */ -#define NXFONT_ID FONTID_TOM_THUMB_3X6 +#define NXFONT_ID FONTID_TOM_THUMB_4X6 /* Ranges of 7-bit and 8-bit fonts */