Incoherent handling of '\n' in Octave 2.9.9 wrt. Octave 2.1.73

Paolo Giarrusso p.giarrusso at gmail.com
Fri Apr 18 10:23:40 CDT 2008


(Semi-automatic) Bug report for Octave 2.9.9 configured for x86_64-pc-linux-gnu

Description:
-----------
The attached code snippet gives different result when executed with
Octave 2.1.73 and Octave 2.9.9, as provided by Ubuntu 7.04 (and I
consider the results of 2.9.9 to be buggy). The results of each
command in Octave2.9 are given in comments.

In particular, what puzzles me is that disp('\n') (note single quotes)
prints literally the blackslash and the `n', while disp("\n") and
fprintf (of either '\n' or "\n") give the expected result.
Typing the string at the prompt behaves like disp:

octave2.9:3> '\n'
ans = \n
octave2.9:4> "\n"
ans =

octave2.9:5>

But fprintf() gives the same results with both single and double
quotes; however, it sure does not handle \n itself, because it would
then handle:

octave2.9:5> str=disp('\n')
str = \n

octave2.9:6> fprintf(str)
\n
octave2.9:7>
But fprintf doesn't handle \n here, as you can see.

Any hint?
Thanks in advance

what follows is from the mail created by bug_report, in case it can be useful.

Configuration (please do not edit this section):
-----------------------------------------------

uname output:     Linux americanbeauty.home.lan 2.6.23.14+swsusp2-evms
#3 SMP PREEMPT Fri Jan 25 01:25:35 CET 2008 x86_64 GNU/Linux
configure opts:   '--prefix=/usr' '--datadir=/usr/share'
'--libdir=/usr/lib' '--libexecdir=/usr/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man'
'--with-blas=-lblas-3' '--with-lapack=-llapack-3' '--with-hdf5'
'--with-fftw' '--with-f77=/usr/bin/gfortran' '--enable-shared'
'--enable-rpath' '--disable-static' '--build' 'x86_64-linux-gnu'
'build_alias=x86_64-linux-gnu' 'CC=/usr/bin/gcc' 'CXX=/usr/bin/g++'
'F77=/usr/bin/gfortran'
Fortran compiler: /usr/bin/gfortran
FFLAGS:           -O2
F2C:
F2CFLAGS:
FLIBS:            -L/usr/lib/gcc/x86_64-linux-gnu/4.1.2
-L/usr/lib/gcc/x86_64-linux-gnu/4.1.2/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64 -lhdf5 -lz -lgfortranbegin
-lgfortran -lm
CPPFLAGS:
INCFLAGS:         -I. -I. -I./liboctave -I./src -I./libcruft/misc
C compiler:       /usr/bin/gcc, version 4.1.2 20061103 (prerelease)
(Ubuntu 4.1.1-18ubuntu2)
CFLAGS:           -O2
CPICFLAG:         -fPIC
C++ compiler:     /usr/bin/g++, version 4.1.2
CXXFLAGS:         -O2
CXXPICFLAG:       -fPIC
LD_CXX:           /usr/bin/g++
LDFLAGS:          -s
LIBFLAGS:         -L.
RLD_FLAG:         -Wl,-rpath -Wl,/usr/lib/octave-2.9.9
BLAS_LIBS:        -llapack-3 -lblas-3
FFTW_LIBS:        -lfftw3
LIBS:             -lreadline  -lncurses -ldl -lhdf5 -lz -lm
LEXLIB:
LIBDLFCN:
LIBGLOB:
SED:              /bin/sed
DEFS:

  -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION=""
  -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DOCTAVE_SOURCE=1
  -D_GNU_SOURCE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
  -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
  -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSEPCHAR=':'
  -DSEPCHAR_STR=":" -D__NO_MATH_INLINES=1 -DCXX_NEW_FRIEND_TEMPLATE_DECL=1
  -DCXX_ISO_COMPLIANT_LIBRARY=1 -DCXX_ABI=gnu_v3 -DHAVE_LIBM=1
  -DHAVE_PCRE=1 -DHAVE_REGEXEC=1 -DHAVE_REGEX=1 -DHAVE_ZLIB_H=1
  -DHAVE_ZLIB=1 -DHAVE_HDF5_H=1 -DHAVE_HDF5=1 -DHAVE_H5GGET_NUM_OBJS=1
  -DHAVE_FFTW3=1 -DHAVE_GLPK_H=1 -DHAVE_GLPK=1 -DHAVE_IEEE754_DATA_FORMAT=1
  -DF77_FUNC(name,NAME)=name ## _ -DF77_FUNC_(name,NAME)=name ##
  _ -DHAVE_BLAS=1 -DHAVE_UFSPARSE_UMFPACK_H=1 -DHAVE_UMFPACK=1
  -DUMFPACK_SEPARATE_SPLIT=1 -DHAVE_UFSPARSE_COLAMD_H=1
  -DHAVE_COLAMD=1 -DHAVE_UFSPARSE_CCOLAMD_H=1 -DHAVE_CCOLAMD=1
  -DHAVE_UFSPARSE_CHOLMOD_H=1 -DHAVE_CHOLMOD=1 -DHAVE_UFSPARSE_CS_H=1
  -DHAVE_CXSPARSE=1 -DHAVE_GETHOSTNAME=1 -DHAVE_GETPWNAM=1 -DHAVE_DEV_T=1
  -DHAVE_INO_T=1 -DHAVE_NLINK_T=1 -DHAVE_NLINK_T=1 -DHAVE_LONG_LONG_INT=1
  -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_SIGSET_T=1 -DHAVE_SIG_ATOMIC_T=1
  -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=8 -DSIZEOF_LONG_LONG=8
  -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DNPOS=std::string::npos
  -DHAVE_PLACEMENT_DELETE=1 -DHAVE_DYNAMIC_AUTO_ARRAYS=1
  -DSTDC_HEADERS=1 -DHAVE_DIRENT_H=1 -DTIME_WITH_SYS_TIME=1
  -DHAVE_SYS_WAIT_H=1 -DHAVE_ASSERT_H=1 -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1
  -DHAVE_FCNTL_H=1 -DHAVE_FLOAT_H=1 -DHAVE_GRP_H=1 -DHAVE_INTTYPES_H=1
  -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_MEMORY_H=1 -DHAVE_NCURSES_H=1
  -DHAVE_POLL_H=1 -DHAVE_PWD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1
  -DHAVE_STRING_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1
  -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1
  -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1
  -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_UTSNAME_H=1 -DHAVE_TERMCAP_H=1
  -DHAVE_UNISTD_H=1 -DHAVE_SSTREAM=1 -DHAVE_TERMIO_H=1 -DHAVE_SGTTY_H=1
  -DHAVE_GLOB_H=1 -DHAVE_FNMATCH_H=1 -DHAVE_FNMATCH=1 -DHAVE_GLOB=1
  -DHAVE_ATEXIT=1 -DHAVE_BASENAME=1 -DHAVE_BCOPY=1 -DHAVE_BZERO=1
  -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1
  -DHAVE_ENDPWENT=1 -DHAVE_EXECVP=1 -DHAVE_FCNTL=1 -DHAVE_FORK=1
  -DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1
  -DHAVE_GETGRENT=1 -DHAVE_GETGRGID=1 -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1
  -DHAVE_GETPID=1 -DHAVE_GETPPID=1 -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1
  -DHAVE_GETTIMEOFDAY=1 -DHAVE_GETUID=1 -DHAVE_GETWD=1 -DHAVE_KILL=1
  -DHAVE_LINK=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LSTAT=1 -DHAVE_MEMMOVE=1
  -DHAVE_MKDIR=1 -DHAVE_MKFIFO=1 -DHAVE_MKSTEMP=1 -DHAVE_ON_EXIT=1
  -DHAVE_PIPE=1 -DHAVE_POLL=1 -DHAVE_PUTENV=1 -DHAVE_RAISE=1
  -DHAVE_READLINK=1 -DHAVE_RENAME=1 -DHAVE_RINDEX=1 -DHAVE_RMDIR=1
  -DHAVE_ROUND=1 -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 -DHAVE_SETLOCALE=1
  -DHAVE_SETPWENT=1 -DHAVE_SETVBUF=1 -DHAVE_SIGACTION=1 -DHAVE_SIGLONGJMP=1
  -DHAVE_SIGPENDING=1 -DHAVE_SIGPROCMASK=1 -DHAVE_SIGSUSPEND=1 -DHAVE_STAT=1
  -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRERROR=1 -DHAVE_STRFTIME=1
  -DHAVE_STRNCASECMP=1 -DHAVE_STRPTIME=1 -DHAVE_STRSIGNAL=1
  -DHAVE_SYMLINK=1 -DHAVE_TEMPNAM=1 -DHAVE_UMASK=1 -DHAVE_UNAME=1
  -DHAVE_UNLINK=1 -DHAVE_USLEEP=1 -DHAVE_VFPRINTF=1 -DHAVE_VSPRINTF=1
  -DHAVE_VSNPRINTF=1 -DHAVE_WAITPID=1 -DHAVE_LIBDL=1 -DHAVE_DLOPEN=1
  -DHAVE_DLSYM=1 -DHAVE_DLERROR=1 -DHAVE_DLCLOSE=1 -DHAVE_DLOPEN_API=1
  -DENABLE_DYNAMIC_LINKING=1 -DHAVE_TIMEVAL=1 -DHAVE_FINITE=1
  -DHAVE_ISNAN=1 -DHAVE_ISINF=1 -DHAVE_COPYSIGN=1 -DHAVE_DECL_SIGNBIT=1
  -DHAVE_ACOSH=1 -DHAVE_ASINH=1 -DHAVE_ATANH=1 -DHAVE_ERF=1 -DHAVE_ERFC=1
  -DHAVE_EXP2=1 -DHAVE_LOG2=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1
  -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1
  -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DUSE_READLINE=1
  -DEXCEPTION_IN_MATH=1 -DRETSIGTYPE=void -DHAVE_DECL_SYS_SIGLIST=1
  -DHAVE_POSIX_SIGNALS=1 -DHAVE_GETRUSAGE=1 -DHAVE_TIMES=1
  -DYYTEXT_POINTER=1 -DGNUPLOT_BINARY="gnuplot" -DGNUPLOT_HAS_FRAMES=

User-preferences (please do not edit this section):
--------------------------------------------------

  EDITOR = vi
  EXEC_PATH = /usr/lib/octave/2.9.9/site/exec/x86_64-pc-linux-gnu:/usr/lib/octave/api-v22/site/exec/x86_64-pc-linux-gnu:/usr/lib/octave/site/exec/x86_64-pc-linux-gnu:/usr/lib/octave/2.9.9/exec/x86_64-pc-linux-gnu:/usr/bin:/home/paolo/Admin/src/ns-allinone-2.32/bin:/home/paolo/Admin/src/ns-allinone-2.32/tcl8.4.15/unix:/home/paolo/Admin/src/ns-allinone-2.32/tk8.4.15/unix:/home/paolo/opt/agntctrl/bin:/usr/lib/ccache:/usr/lib/icecc/bin:/home/paolo/opt/pappa:/home/paolo/opt/quilt/bin:/home/paolo/opt/git64/bin:/home/paolo/opt/git/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/usr/lib/jvm/java-6-sun/bin:/usr/local/vmware/bin:/usr/local/sbin:/sbin:/usr/sbin:/home/paolo/bin:/home/paolo/opt/patch-scripts:/home/paolo/opt/tex4ht.dir/bin/unix:.:/home/paolo/Progs/aspectj1.5/bin
  IMAGE_PATH = .:/usr/share/octave/2.9.9/imagelib
  PAGER = less
  PS1 = \s:\#>
  PS2 = >
  PS4 = +
  automatic_replot = 1
  beep_on_error = 0
  completion_append_char =
  crash_dumps_octave_core = 1
  echo_executing_commands = 0
  fixed_point_format = 0
  gnuplot_binary = gnuplot
  gnuplot_command_end =

  gnuplot_command_plot = pl
  gnuplot_command_replot = rep
  gnuplot_command_splot = sp
  gnuplot_command_title = t
  gnuplot_command_using = u
  gnuplot_command_with = w
  history_file = /home/paolo/.octave_hist
  history_size = 1024
  ignore_function_time_stamp = system
  info_file = /usr/share/info/octave2.9.info
  info_program = info
  makeinfo_program = makeinfo
  max_recursion_depth = 256
  output_max_field_width = 5
  output_precision = 5
  page_output_immediately = 0
  page_screen_output = 0
  print_answer_id_name = 1
  print_empty_dimensions = 1
  save_precision = 16
  saving_history = 1
  sighup_dumps_octave_core = 1
  sigterm_dumps_octave_core = 1
  silent_functions = 0
  split_long_rows = 1
  string_fill_char =
  struct_levels_to_print = 2
  suppress_verbose_help_message = 0

-- 
Paolo 'Blaisorblade' Giarrusso
-------------- next part --------------
A non-text attachment was scrubbed...
Name: octaveBug.m
Type: text/x-objcsrc
Size: 243 bytes
Desc: not available
Url : https://www.cae.wisc.edu/pipermail/bug-octave/attachments/20080418/634fb241/attachment.bin 


More information about the Bug-octave mailing list