view src/pager.h @ 13112:969ed305dde5

Remove all blank lines with "format compact" * pr-output.h (Vcompact_format): New global variable. * pr-output.cc (Vcompact_format): No longer a static variable. (pr_scale_header, pr_col_num_header, octave_print_internal): Use Vcompact_format to eliminate some newlines. (Vformat): Document this change. * ov-base.cc (octave_base_value::print_name_tag, octave_base_value::print_with_name): Use Vcompact_format variable to omit newlines. * ov-class.cc (octave_class::print_name_tag): Ditto. * ov-range.cc (octave_range::print_name_tag): Ditto. * ov-struct.cc (octave_scalar_struct::print_raw): Ditto.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 06 Sep 2011 21:15:16 -0500
parents fd0a3ac60b0e
children c053740eb2aa
line wrap: on
line source

/*

Copyright (C) 1993-2011 John W. Eaton

This file is part of Octave.

Octave 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.

Octave 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 Octave; see the file COPYING.  If not, see
<http://www.gnu.org/licenses/>.

*/

#if !defined (octave_pager_h)
#define octave_pager_h 1

#include <iosfwd>
#include <sstream>
#include <string>

#include <sys/types.h>

class
OCTINTERP_API
octave_pager_buf : public std::stringbuf
{
public:

  octave_pager_buf (void) : std::stringbuf (), diary_skip (0) { }

  void flush_current_contents_to_diary (void);

  void set_diary_skip (void);

protected:

  int sync (void);

private:

  size_t diary_skip;
};

class
OCTINTERP_API
octave_pager_stream : public std::ostream
{
protected:

  octave_pager_stream (void);

public:

  ~octave_pager_stream (void);

  void flush_current_contents_to_diary (void);

  void set_diary_skip (void);

  static octave_pager_stream& stream (void);

private:

  static octave_pager_stream *instance;

  octave_pager_buf *pb;

  // No copying!

  octave_pager_stream (const octave_pager_stream&);

  octave_pager_stream& operator = (const octave_pager_stream&);
};

class
OCTINTERP_API
octave_diary_buf : public std::stringbuf
{
public:

  octave_diary_buf (void) : std::stringbuf () { }

protected:

  int sync (void);
};

class
OCTINTERP_API
octave_diary_stream : public std::ostream
{
protected:

  octave_diary_stream (void);

public:

  ~octave_diary_stream (void);

  static octave_diary_stream& stream (void);

private:

  static octave_diary_stream *instance;

  octave_diary_buf *db;

  // No copying!

  octave_diary_stream (const octave_diary_stream&);

  octave_diary_stream& operator = (const octave_diary_stream&);
};

#define octave_stdout (octave_pager_stream::stream ())

#define octave_diary (octave_diary_stream::stream ())

extern OCTINTERP_API void flush_octave_stdout (void);

#endif