Skip to content

Commit

Permalink
Fix lpc prompt (Issue #5946)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelrsweet committed Aug 30, 2021
1 parent aebec23 commit 9d4e1ef
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGES.md
Expand Up @@ -83,6 +83,7 @@ Changes in CUPS v2.3.5
directive in `cupsd.conf` (Issue #5733)
- Fixed `@IF(name)` handling in `cupsd.conf` (Issue #5918)
- The scheduler now supports the "everywhere" model directly (Issue #5919)
- Fixed the `lpc` command prompt (Issue #5946)
- Fixed `job-pages-per-set` value for duplex print jobs.


Expand Down
31 changes: 28 additions & 3 deletions berkeley/lpc.c
Expand Up @@ -21,6 +21,7 @@
static int compare_strings(const char *, const char *, size_t);
static void do_command(http_t *, const char *, const char *);
static void show_help(const char *);
static void show_prompt(const char *message);
static void show_status(http_t *, const char *);


Expand Down Expand Up @@ -59,7 +60,7 @@ main(int argc, /* I - Number of command-line arguments */
* Do the command prompt thing...
*/

_cupsLangPuts(stdout, _("lpc> ")); /* TODO: Need no-newline version */
show_prompt(_("lpc> "));
while (fgets(line, sizeof(line), stdin) != NULL)
{
/*
Expand Down Expand Up @@ -87,7 +88,7 @@ main(int argc, /* I - Number of command-line arguments */
* Nothing left, just show a prompt...
*/

_cupsLangPuts(stdout, _("lpc> ")); /* TODO: Need no newline version */
show_prompt(_("lpc> "));
continue;
}

Expand Down Expand Up @@ -123,7 +124,7 @@ main(int argc, /* I - Number of command-line arguments */
* Put another prompt out to the user...
*/

_cupsLangPuts(stdout, _("lpc> ")); /* TODO: Need no newline version */
show_prompt(_("lpc> "));
}
}

Expand Down Expand Up @@ -200,6 +201,30 @@ show_help(const char *command) /* I - Command to describe or NULL */
}


/*
* 'show_prompt()' - Show a localized prompt message.
*/

static void
show_prompt(const char *message) /* I - Message string to use */
{
ssize_t bytes; /* Number of bytes formatted */
char output[8192]; /* Message buffer */
cups_lang_t *lang = cupsLangDefault();
/* Default language */

/*
* Transcode to the destination charset and write the prompt...
*/

if ((bytes = cupsUTF8ToCharset(output, (cups_utf8_t *)_cupsLangString(lang, message), sizeof(output), lang->encoding)) > 0)
{
fwrite(output, 1, (size_t)bytes, stdout);
fflush(stdout);
}
}


/*
* 'show_status()' - Show printers.
*/
Expand Down

0 comments on commit 9d4e1ef

Please sign in to comment.