[yocto] [psplash][PATCH] psplash: add option to read startup message from file
Richard Leitner
richard.leitner at skidata.com
Wed May 25 01:02:38 PDT 2016
Any comments/updates on that patch of mine?
On 04/15/2016 10:49 AM, Richard Leitner wrote:
> This patch adds an option to read the displayed message from a file.
> Additionally the maximum length for the read string can be defined.
> If both, a message (STARTUP_MSG) and a file (STARTUP_MSG_FILE) are
> defined the content of the file will be appended to the message.
> The string will be cutted after the given maximum number of chars.
>
> For these changes the following defines were introduced:
> PSPLASH_STARTUP_MSG_MAX_LEN ... maximum lenght of the complete message
> PSPLASH_STARTUP_MSG_FILE ...... path to the file to read
>
> Signed-off-by: Richard Leitner <richard.leitner at skidata.com>
> ---
> psplash-config.h | 5 +++++
> psplash.c | 29 ++++++++++++++++++++++++++++-
> 2 files changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/psplash-config.h b/psplash-config.h
> index 82bb76d..7fa44fa 100644
> --- a/psplash-config.h
> +++ b/psplash-config.h
> @@ -21,6 +21,11 @@
>
> /* Text to output on program start; if undefined, output nothing */
> #define PSPLASH_STARTUP_MSG ""
> +#define PSPLASH_STARTUP_MSG_MAX_LEN 32
> +
> +/* File to read and display its first line on program start;
> + * if undefined, output nothing; if MSG is defined also, append to it */
> +#define PSPLASH_STARTUP_MSG_FILE ""
>
> /* Bool indicating if the image is fullscreen, as opposed to split screen */
> #define PSPLASH_IMG_FULLSCREEN 0
> diff --git a/psplash.c b/psplash.c
> index 04d3d49..b7d2d28 100644
> --- a/psplash.c
> +++ b/psplash.c
> @@ -208,6 +208,9 @@ main (int argc, char** argv)
> int pipe_fd, i = 0, angle = 0, ret = 0;
> PSplashFB *fb;
> bool disable_console_switch = FALSE;
> + char msg[PSPLASH_STARTUP_MSG_MAX_LEN];
> + int msglen;
> + FILE *fd_msg;
>
> signal(SIGHUP, psplash_exit);
> signal(SIGINT, psplash_exit);
> @@ -298,9 +301,33 @@ main (int argc, char** argv)
>
> psplash_draw_progress (fb, 0);
>
> + memset(msg, 0, PSPLASH_STARTUP_MSG_MAX_LEN);
> + msglen = 0;
> #ifdef PSPLASH_STARTUP_MSG
> - psplash_draw_msg (fb, PSPLASH_STARTUP_MSG);
> + snprintf(msg, PSPLASH_STARTUP_MSG_MAX_LEN, "%s", PSPLASH_STARTUP_MSG);
> + msglen = strlen(msg);
> #endif
> +#ifdef PSPLASH_STARTUP_MSG_FILE
> + fd_msg = fopen (PSPLASH_STARTUP_MSG_FILE, "r");
> + if (fd_msg)
> + {
> + if (msglen == 0)
> + {
> + fgets (msg, PSPLASH_STARTUP_MSG_MAX_LEN, fd_msg);
> + }
> + else
> + {
> + fgets (&msg[msglen + 1], PSPLASH_STARTUP_MSG_MAX_LEN - msglen - 1, fd_msg);
> + msg[msglen] = ' ';
> + }
> + fclose (fd_msg);
> + }
> + msglen = strlen(msg);
> +#endif
> +
> + /* draw message if we have one */
> + if (msglen > 0)
> + psplash_draw_msg (fb, msg);
>
> psplash_main (fb, pipe_fd, 0);
>
>
More information about the yocto
mailing list