To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=89012
Issue #|89012
Summary|soltools/wntmsci10.pro/misc/hidc_yy.cxx error: 'isatty
|': identifier not found
Component|tools
Version|BEA300m1
Platform|All
URL|
OS/Version|Windows, all
Status|NEW
Status whiteboard|
Keywords|
Resolution|
Issue type|PATCH
Priority|P3
Subcomponent|code
Assigned to|mh
Reported by|tora
------- Additional comments from [EMAIL PROTECTED] Mon May 5 03:45:23 +0000
2008 -------
### Problem ###
A compile error occurred.
../wntmsci10.pro\misc\hidc_yy.cxx(2483) : error C3861: 'isatty': identifier not
found, even with argument-dependent lookup
ERROR: Error 65280 occurred while making
/cygdrive/g/ooo/cws/fmepatches02/BEA300_m1/soltools/HIDCompiler
### Environment ###
OS: Windows 2000 Japanese SP4
Compiler: Microsoft Visual C++.net Standard Version 2003 (English)
Tools:
Cygwin
flex 2.5.35
Source files:
developer/BEA300_m1/OOo-Dev_BEA300_m1_src_binfilter.tar.bz2
developer/BEA300_m1/OOo-Dev_BEA300_m1_src_core.tar.bz2
developer/BEA300_m1/OOo-Dev_BEA300_m1_src_l10n.tar.bz2
developer/BEA300_m1/OOo-Dev_BEA300_m1_src_sdk.tar.bz2
developer/BEA300_m1/OOo-Dev_BEA300_m1_src_system.tar.bz2
### What I did ###
cd $SRC_ROOT/sw
(date ; time build.pl --all -- PRODUCT=full ; date ) 2>&1 | tee build.log
### Results ###
build.log
...(ommitted)...
=============
Building module soltools
=============
...(ommitted)...
c:/PROGRA~1/MICROS~1.NET/Vc7/bin/cl.exe -Zm500 -Zc:forScope -GR -c -nologo -Gs
-Gy -Gd -I. -I../wntmsci10.pro/misc -I../wntmsci10.pro/inc/hidc -I../inc
-I../inc/pch -I../inc -I../WIN/inc -I../wntmsci10.pro/inc -I.
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solver/300/wntmsci10.pro/inc/stl
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solver/300/wntmsci10.pro/inc/external
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solver/300/wntmsci10.pro/inc
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solenv/wntmsci10/inc
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solenv/inc
-Ig:/ooo/cws/fmepatches02/BEA300_m1/res
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solver/300/wntmsci10.pro/inc/stl
-Ic:/J2SDK1~1.2_0/include/win32 -Ic:/J2SDK1~1.2_0/include
-Ic:/PROGRA~1/MIFD68~1/include -Ic:/PROGRA~1/MICROS~1.NET/Vc7/include
-Ic:/PROGRA~1/MICROS~2.0SD/include
-Ic:/PROGRA~1/MICROS~1.NET/Vc7/PlatformSDK/include
-Ic:/PROGRA~1/MICROS~2.0SD/include
-Ig:/ooo/cws/fmepatches02/BEA300_m1/solver/300/wntmsci10.pro/inc/offuh -I.
-I../res -I. -Wall -wd4061 -wd4063 -wd4127 -wd4191 -wd4217 -wd4250 -wd4251
-wd4275 -wd4290 -wd4292 -wd4294 -wd4344 -wd4347 -wd4355 -wd4503 -wd4511
-wd4512 -wd4514 -wd4611 -wd4619 -wd4625 -wd4626 -wd4640 -wd4675 -wd4686
-wd4710 -wd4711 -wd4786 -wd4800 -wd4820 -DWNT -DWNT -DNT351 -DMSC -DM1310
-DINTEL -D_X86_=1 -DFULL_DESK -DSTLPORT_VERSION=400 -DWINVER=0x400
-D_WIN32_IE=0x400 -D_MT -DCPPU_ENV=msci -DSUPD=300 -DPRODUCT -DNDEBUG
-DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DSOLAR_JAVA -DBEA300=BEA300
-DYY_NEVER_INTERACTIVE=1 -DWIN32 -D_MT -D_DLL -DWIN32 -D_MT -D_DLL
-DEXCEPTIONS_OFF -Fo../wntmsci10.pro/obj/wrap_hidclex.obj
g:/ooo/cws/fmepatches02/BEA300_m1/soltools/HIDCompiler/wrap_hidclex.cxx
wrap_hidclex.cxx
../wntmsci10.pro\misc\hidc_yy.cxx(2483) : error C3861: 'isatty': identifier not
found, even with argument-dependent lookup
dmake: Error code 2, while making '../wntmsci10.pro/obj/wrap_hidclex.obj'
ERROR: Error 65280 occurred while making
/cygdrive/g/ooo/cws/fmepatches02/BEA300_m1/soltools/HIDCompiler
### Quick Investigation ###
../wntmsci10.pro/misc/hidc_yy.cxx
2456 #ifndef __cplusplus
2457 extern int isatty (int );
2458 #endif /* __cplusplus */
2459
2460 /* Initializes or reinitializes a buffer.
2461 * This function is sometimes called more than once on the same buffer,
2462 * such as during a yyrestart() or at EOF.
2463 */
2464 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2465
2466 {
2467 int oerrno = errno;
2468
2469 yy_flush_buffer(b );
2470
2471 b->yy_input_file = file;
2472 b->yy_fill_buffer = 1;
2473
2474 /* If b is the current buffer, then yy_init_buffer was _probably_
2475 * called from yyrestart() or through yy_get_next_buffer.
2476 * In that case, we don't want to reset the lineno or column.
2477 */
2478 if (b != YY_CURRENT_BUFFER){
2479 b->yy_bs_lineno = 1;
2480 b->yy_bs_column = 0;
2481 }
2482
2483 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2484
2485 errno = oerrno;
2486 }
isatty() can be found in the line 2483.
### Reference 1 ###
/usr/share/info/flex.info-1
says
Why do flex scanners call fileno if it is not ANSI compatible?
==============================================================
Flex scanners call `fileno()' in order to get the file descriptor
corresponding to `yyin'. The file descriptor may be passed to
`isatty()' or `read()', depending upon which `%options' you specified.
If your system does not have `fileno()' support, to get rid of the
`read()' call, do not specify `%option read'. To get rid of the
`isatty()' call, you must specify one of `%option always-interactive' or
`%option never-interactive'.
### Reference 2 ###
http://msdn.microsoft.com/en-us/library/ms235388.aspx
says
This POSIX function is deprecated beginning in Visual C++ 2005.
Use the ISO C++ conformant _isatty instead.
### Thoughts ###
HID Compiler, hidc, is normally used in the non-interactive mode.
Visual C++ 2005 suggests not to use a function isatty().
According to the info of flex, inclusion of the function isatty()
seems to be suppressed by adding a directive '%option never-interactive'
in a source file to flex.
### Experiment ###
An attempt of removing isatty() from an output of flex by inserting
a directive '%option never-interactive' to soltools/HIDCompiler/hidclex.l:
Index: hidclex.l
===================================================================
RCS file: /cvs/tools/soltools/HIDCompiler/hidclex.l,v
retrieving revision 1.7
diff -U 5 -r1.7 hidclex.l
--- hidclex.l 10 Apr 2008 17:56:30 -0000 1.7
+++ hidclex.l 5 May 2008 03:12:21 -0000
@@ -469,10 +469,11 @@
//string (\"[^"]*\") alter einfacher string ohne "
%}
+%option never-interactive
simple ([^\n\"]*)
%p 7000
string \"{simple}((((\\\\)*(\\\"))?){simple})*\"
%x MACRO_STATE
### Results of the Attempt ###
That is successful as below:
../wntmsci10.pro/misc/hidc_yy.cxx
2460 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2461
2462 {
2463 int oerrno = errno;
2464
2465 yy_flush_buffer(b );
2466
2467 b->yy_input_file = file;
2468 b->yy_fill_buffer = 1;
2469
2470 /* If b is the current buffer, then yy_init_buffer was _probably_
2471 * called from yyrestart() or through yy_get_next_buffer.
2472 * In that case, we don't want to reset the lineno or column.
2473 */
2474 if (b != YY_CURRENT_BUFFER){
2475 b->yy_bs_lineno = 1;
2476 b->yy_bs_column = 0;
2477 }
2478
2479 b->yy_is_interactive = 0;
2480
2481 errno = oerrno;
2482 }
isatty() disappears.
### Retrying the dmake ###
cd $SRC_ROOT/soltools/HIDCompiler
dmake PRODUCT=full
That now produces no error.
### Conclusion ###
To avoid a potential compile error, which could happen under certain
environments, inserting '%option never-interactive' in
soltools/HIDCompiler/hidclex.l is recommended.
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]