/* Copyright (C) 2008 Emmanuel Varoquaux
This file is part of XOS.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
#ifndef PRINT_CMD_H
#define PRINT_CMD_H
#include
struct simple_command_struct;
struct compound_command_struct;
struct command_struct;
struct pipeline_struct;
struct and_or_list_struct;
struct list_struct;
struct string_buffer_struct {
char *buf;
size_t size;
int pos;
};
void string_buffer_init(struct string_buffer_struct *string_buffer);
char *string_buffer_release(struct string_buffer_struct *string_buffer);
void print_command(const struct command_struct *command, int *line_number, struct string_buffer_struct *string_buffer);
void print_pipeline(const struct pipeline_struct *pipeline, int *line_number, struct string_buffer_struct *string_buffer);
void print_and_or_list(const struct and_or_list_struct *and_or_list, int *line_number, struct string_buffer_struct *string_buffer);
void print_list(const struct list_struct *list, int *line_number, struct string_buffer_struct *string_buffer);
#endif