Christophe Staïesse 424702b272 Fix bug: rgbasm segfault when \@ is used outside a macro
The problem occurs when \@ is accessed outside the definition of a
macro and is not between "" or {}, or when it is used in an argument of
a macro call, i.e. when the access is processed by PutUniqueArg().

PutUniqueArg(), puts back the string value of \@ to the lexer's buffer
(to substitute \@ by the unique label string).
When \@ is not defined, sym_FindMacroArg(-1) returns NULL, which
yyunputstr() doesn't expect and crashes.

Solution:
Generate an error when \@ is not defined.

Regression test:

SECTION "HOME", HOME
        ld a,\@

Will segfault.
On the fixed version, it will return an error as \@ is not available.
2014-10-05 13:32:18 +02:00
2014-09-24 03:03:42 -06:00
2014-09-24 03:07:43 -06:00
2014-09-24 03:03:42 -06:00

----------------
  RGBDS README
----------------

RGBDS (Rednex Game Boy Development System) is a free assembler/linker package
for the Game Boy and Game Boy Color. It consists of:

  - rgbasm  (assembler)
  - rgblink (linker)
  - rgbfix  (checksum/header fixer)

rgbds-linux is a fork of the original RGBDS which aims to make the programs
more like other UNIX tools.


  Installing RGBDS (UNIX)
=========================

To build the programs on a UNIX or UNIX-like system, just run in your terminal:

  make

Then to install the compiled programs and manual pages, run (with appropriate
privileges):

  make install

After installation, you can read the manuals with the man(1) command. E.g.,

  man 1 rgbasm


Note: the variables described below can affect installation behavior when given
on the make command line. For example, to install rgbds in your home directory
instead of systemwide, run the following:

  mkdir -p $HOME/{bin,man/man1,man/man7}
  make install PREFIX=$HOME


PREFIX: Location where RGBDS will be installed. Defaults to /usr/local.

BINPREFIX: Location where the RGBDS programs will be installed. Defaults
to ${PREFIX}/bin.

MANPREFIX: Location where the RGBDS man pages will be installed. Defaults
to ${PREFIX}/man.

Q: Whether to quiet the build or not. To make the build more verbose, clear
this variable. Defaults to @.


  Installing RGBDS (Windows)
============================

Windows builds are available here: http://anthony.bentley.name/rgbds/

Copy the .exe files to C:\Windows\ or similar.
Description
Rednex Game Boy Development System - An assembly toolchain for the Nintendo Game Boy and Game Boy Color
Readme MIT 18 MiB
Languages
C++ 68%
Assembly 18%
Shell 6.8%
Yacc 5%
CMake 1%
Other 1%