#ifndef COMMON_STRING_H
#define COMMON_STRING_H
#include <signal.h>
struct StringInfoData;
typedef struct PromptInterruptContext
{
void *jmpbuf;
volatile sig_atomic_t *enabled;
bool canceled;
} PromptInterruptContext;
extern bool pg_str_endswith(const char *str, const char *end);
extern int strtoint(const char *pg_restrict str, char **pg_restrict endptr,
int base);
extern char *pg_clean_ascii(const char *str, int alloc_flags);
extern int pg_strip_crlf(char *str);
extern bool pg_is_ascii(const char *str);
extern char *pg_get_line(FILE *stream, PromptInterruptContext *prompt_ctx);
extern bool pg_get_line_buf(FILE *stream, struct StringInfoData *buf);
extern bool pg_get_line_append(FILE *stream, struct StringInfoData *buf,
PromptInterruptContext *prompt_ctx);
extern char *simple_prompt(const char *prompt, bool echo);
extern char *simple_prompt_extended(const char *prompt, bool echo,
PromptInterruptContext *prompt_ctx);
#endif