+++ /dev/null
-Index: e2fsck/Makefile.in
-===================================================================
---- e2fsck/Makefile.in.orig 2012-06-04 18:49:33.000000000 +0200
-+++ e2fsck/Makefile.in 2012-06-14 09:50:56.344425761 +0200
-@@ -68,7 +68,7 @@ OBJS= crc32.o dict.o unix.o e2fsck.o sup
- pass3.o pass4.o pass5.o journal.o badblocks.o util.o dirinfo.o \
- dx_dirinfo.o ehandler.o problem.o message.o quota.o recovery.o \
- region.o revoke.o ea_refcount.o rehash.o profile.o prof_err.o \
-- logfile.o sigcatcher.o $(MTRACE_OBJ)
-+ logfile.o sigcatcher.o splash.o $(MTRACE_OBJ)
-
- PROFILED_OBJS= profiled/dict.o profiled/unix.o profiled/e2fsck.o \
- profiled/super.o profiled/pass1.o profiled/pass1b.o \
-@@ -107,6 +107,7 @@ SRCS= $(srcdir)/e2fsck.c \
- $(srcdir)/rehash.c \
- $(srcdir)/region.c \
- $(srcdir)/profile.c \
-+ $(srcdir)/splash.c \
- $(srcdir)/sigcatcher.c \
- $(srcdir)/logfile.c \
- prof_err.c \
-@@ -539,6 +540,7 @@ region.o: $(srcdir)/region.c $(top_build
- $(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/mkquota.h \
- $(top_srcdir)/lib/quota/quotaio.h $(top_srcdir)/lib/quota/dqblk_v2.h \
- $(top_srcdir)/lib/quota/quotaio_tree.h $(top_srcdir)/lib/../e2fsck/dict.h
-+splash.o: $(srcdir)/splash.c $(srcdir)/splash.h
- profile.o: $(srcdir)/profile.c $(top_builddir)/lib/config.h \
- $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \
- $(srcdir)/profile.h prof_err.h
-Index: e2fsck/splash.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ e2fsck/splash.c 2012-06-14 09:50:21.834048298 +0200
-@@ -0,0 +1,100 @@
-+/*
-+ * add support for switching the splash screen on boot
-+ */
-+#include <stdio.h>
-+#include <string.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include "splash.h"
-+
-+static int verbose = 0;
-+
-+/* nop implementation
-+ */
-+static void nop(void)
-+{
-+}
-+
-+static struct splash_ops nop_ops = {
-+ .splash_on = nop,
-+ .splash_off = nop
-+};
-+
-+/*
-+ * bootsplash implementation
-+ */
-+#define BOOTSPLASH_CTL "/proc/splash"
-+
-+static int bootsplash_exists(void)
-+{
-+ struct stat sb;
-+
-+ if (stat(BOOTSPLASH_CTL, &sb) == -1)
-+ return 0;
-+
-+ if (S_ISREG(sb.st_mode))
-+ return 1;
-+
-+ return 0;
-+}
-+
-+/* write msg to splash control */
-+static void bootsplash_msg(const char *msg, size_t size)
-+{
-+ int fd;
-+ size_t written;
-+
-+ fd = open(BOOTSPLASH_CTL, O_WRONLY);
-+ if (fd == -1) {
-+ if (verbose)
-+ printf("cannot open %s\n", BOOTSPLASH_CTL);
-+ return;
-+ }
-+
-+ written = write(fd, msg, size);
-+ if (written != size) {
-+ if (verbose)
-+ printf("size = %i, written = %i\n", size, written);
-+ }
-+
-+ close(fd);
-+}
-+
-+static void bootsplash_on(void)
-+{
-+ if (verbose)
-+ printf("setting bootsplash silent\n");
-+ bootsplash_msg("silent\n", 7);
-+}
-+
-+static void bootsplash_off(void)
-+{
-+ if (verbose)
-+ printf("setting bootsplash verbose\n");
-+ bootsplash_msg("verbose\n", 8);
-+}
-+
-+static struct splash_ops bootsplash_ops = {
-+ .splash_on = bootsplash_on,
-+ .splash_off = bootsplash_off
-+};
-+
-+/*
-+ * Initialisation
-+ */
-+void splash_init(struct splash_ops **ops)
-+{
-+ if (bootsplash_exists())
-+ *ops = &bootsplash_ops;
-+ else
-+ *ops = &nop_ops;
-+}
-+
-+void splash_set_verbose(void)
-+{
-+ verbose = 1;
-+}
-+
-Index: e2fsck/splash.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ e2fsck/splash.h 2012-06-14 09:50:21.834048298 +0200
-@@ -0,0 +1,13 @@
-+#ifndef _SPLASH_H
-+#define _SPLASH_H
-+
-+struct splash_ops {
-+ void (*splash_on)(void);
-+ void (*splash_off)(void);
-+};
-+
-+void splash_init(struct splash_ops **ops);
-+void splash_set_verbose(void);
-+
-+#endif /* _SPLASH_H */
-+
-Index: e2fsck/unix.c
-===================================================================
---- e2fsck/unix.c.orig 2012-06-12 04:12:50.000000000 +0200
-+++ e2fsck/unix.c 2012-06-14 09:50:21.834048298 +0200
-@@ -51,6 +51,7 @@ extern int optind;
- #include "e2p/e2p.h"
- #include "e2fsck.h"
- #include "problem.h"
-+#include "splash.h"
- #include "../version.h"
-
- /* Command line options */
-@@ -1141,6 +1142,7 @@ int main (int argc, char *argv[])
- __u32 features[3];
- char *cp;
- int qtype; /* quota type */
-+ struct splash_ops *sops;
-
- clear_problem_context(&pctx);
- sigcatcher_setup();
-@@ -1172,6 +1174,7 @@ int main (int argc, char *argv[])
- exit(FSCK_ERROR);
- }
- reserve_stdio_fds();
-+ splash_init(&sops);
-
- set_up_logging(ctx);
- if (ctx->logf) {
-@@ -1548,6 +1551,7 @@ print_unsupp_features:
- fatal_error(ctx, 0);
- check_if_skip(ctx);
- check_resize_inode(ctx);
-+ sops->splash_off();
- if (bad_blocks_file)
- read_bad_blocks_file(ctx, bad_blocks_file, replace_bad_blocks);
- else if (cflag)