mescc: Bugfix for merging objects.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 4 Jun 2017 20:44:21 +0000 (22:44 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 5 Jun 2017 09:42:15 +0000 (11:42 +0200)
* mlibc/libc-mes.c (main): Declare.
* mlibc/mini-libc-mes.c (g_stdin): Define.
  (main): Declare.
* module/language/c99/compiler.mes (alist-add): Thinko.  Fixes merging
  objects when first declares function of next.

mlibc/libc-mes.c
mlibc/mini-libc-mes.c
module/language/c99/compiler.mes

index a5f074fab1d874a1e63e07ff3dfeb5955389eb4d..6eda30c4e9cc6585c9b30cfa8964786f69c8e670 100644 (file)
@@ -45,7 +45,7 @@ write ()
   asm (".byte 0x8b 0x5d 0x08");                   // mov    0x8(%ebp),%ebx
   asm (".byte 0x8b 0x4d 0x0c");                   // mov    0xc(%ebp),%ecx
   asm (".byte 0x8b 0x55 0x10");                   // mov    0x10(%ebp),%edx
-              
+
   asm (".byte 0xb8 0x04 0x00 0x00 0x00");         // mov    $0x4,%eax
   asm (".byte 0xcd 0x80");                        // int    $0x80
 }
@@ -360,6 +360,7 @@ _env (char **e)
   return e;
 }
 
+int main(int,char*[]);
 int
 _start ()
 {
index 9cc021bfa7e1ed2cab1f6ee55148e33d50c58eda..8fe9c59526d71b525948125ac3741454e2d6a61c 100644 (file)
@@ -18,6 +18,8 @@
  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+int g_stdin = 0;
+
 void
 exit ()
 {
@@ -60,6 +62,7 @@ _env (char **e)
   return e;
 }
 
+int main(int,char*[]);
 int
 _start ()
 {
index aba55d30635846466eb53ff40e87b8a39c7f7f8a..970430eb0be9bb49560a3ac23f4d3d4cde63b753 100644 (file)
 
 (define (alist-add a b)
   (let* ((b-keys (map car b))
-         (a (filter (lambda (f) (or (cdr f) (not (member f b-keys)))) a))
+         (a (filter (lambda (f) (or (cdr f) (not (member (car f) b-keys)))) a))
          (a-keys (map car a)))
     (append a (filter (lambda (e) (not (member (car e) a-keys))) b))))