/* This file is listing.h
   Copyright (C) 1987-1992 Free Software Foundation, Inc.
   
   This file is part of GAS, the GNU Assembler.
   
   GAS 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 2, or (at your option)
   any later version.
   
   GAS 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 GAS; see the file COPYING.  If not, write to
   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */


#ifndef __listing_h__
#define __listing_h__

#define LISTING_LISTING    1
#define LISTING_SYMBOLS    2
#define LISTING_NOFORM     4
#define LISTING_HLL        8
#define LISTING_NODEBUG   16

#define LISTING_DEFAULT    (LISTING_LISTING | LISTING_HLL |  LISTING_SYMBOLS)

#ifndef NO_LISTING

#define LISTING_NEWLINE() { if (listing) listing_newline(input_line_pointer); }


#if __STDC__ == 1

void listing_eject(void);
void listing_error(char *message);
void listing_file(char *name);
void listing_flags(void);
void listing_list(unsigned int on);
void listing_newline(char *ps);
void listing_print(char *name);
void listing_psize(void);
void listing_source_file(char *);
void listing_source_line(unsigned int);
void listing_title(unsigned int depth);
void listing_warning(char *message);
void listing_width(unsigned int x);

#else /* not __STDC__ */

void listing_eject();
void listing_error();
void listing_file();
void listing_flags();
void listing_list();
void listing_newline();
void listing_print();
void listing_psize();
void listing_source_file();
void listing_source_line();
void listing_title();
void listing_warning();
void listing_width();

#endif /* not __STDC__ */

#else /* not NO_LISTING */

#define LISTING_NEWLINE() {;}

/* Dummy functions for when compiled without listing enabled */

#define listing_flags() {;]
#define listing_list() {;]
#define listing_eject() {;]
#define listing_psize() {;]
#define listing_title(depth) {;]
#define listing_file(name) {;]
#define listing_newline(name) {;]
#define listing_source_line(n) {;]
#define listing_source_file(n) [;]

#endif /* not NO_LISTING */

#endif /* __listing_h__ */

/* end of listing.h */