i3 - improved tiling WM


fix the build on OS X

Patch status: merged

Patch by Jean-Philippe Ouellet

Long description:

OS X doesn't have posix_fallocate() yet, so put
bf760d0241f0f078735e230b4bf6da4fc83368fe in
    #if defined(__APPLE__)

the cd fails with:
    /bin/sh: line 0: cd: include: No such file or directory
so give it a path relative to the top directory

To apply this patch, use:
curl http://cr.i3wm.org/patch/335/raw.patch | git am

b/src/i3.mk

22
@@ -54,12 +54,12 @@ src/config_parser.o: src/config_parser.c $(i3_HEADERS_DEP) i3-config-parser.stam
23
 
24
 i3-command-parser.stamp: generate-command-parser.pl parser-specs/commands.spec
25
 	echo "[i3] Generating command parser"
26
-	(cd include; ../generate-command-parser.pl --input=../parser-specs/commands.spec --prefix=command)
27
+	(cd $(TOPDIR)/include; ../generate-command-parser.pl --input=../parser-specs/commands.spec --prefix=command)
28
 	touch $@
29
 
30
 i3-config-parser.stamp: generate-command-parser.pl parser-specs/config.spec
31
 	echo "[i3] Generating config parser"
32
-	(cd include; ../generate-command-parser.pl --input=../parser-specs/config.spec --prefix=config)
33
+	(cd $(TOPDIR)/include; ../generate-command-parser.pl --input=../parser-specs/config.spec --prefix=config)
34
 	touch $@
35
 
36
 i3: libi3.a $(i3_OBJECTS)

b/src/log.c

41
@@ -129,11 +129,16 @@ void open_logbuffer(void) {
42
             return;
43
         }
44
 
45
+#if defined(__APPLE__)
46
+        if (ftruncate(logbuffer_shm, logbuffer_size) == -1) {
47
+            fprintf(stderr, "Could not ftruncate SHM segment for the i3 log: %s\n", strerror(errno));
48
+#else
49
         int ret;
50
         if ((ret = posix_fallocate(logbuffer_shm, 0, logbuffer_size)) != 0) {
51
+            fprintf(stderr, "Could not ftruncate SHM segment for the i3 log: %s\n", strerror(ret));
52
+#endif
53
             close(logbuffer_shm);
54
             shm_unlink(shmlogname);
55
-            fprintf(stderr, "Could not ftruncate SHM segment for the i3 log: %s\n", strerror(ret));
56
             return;
57
         }
58