| Newsgroups |
gmane.comp.lang.eiffel.gobo.general |
| Message-ID |
<[email protected]> |
--------------3567E1FF8D7DF6603FF6A8B2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
Thanks for the explanation Alexander, I made the necessary changes to
remove all errors and warnings. Now the problem is when linking. I get
several errors about multiple definitions of the c functions. I suppose
this is because I have defined these functions at the header file
"eiffel-iup.h". There is a way to solve this in the header file? Or I
should move these functions to a new file "eiffel-iup.c"? In this case,
how tell the compiler this new file should be compiled?
With Liberty Eiffel I had "eiffel-iup.h" and "eiffel-iup.c" but this
doesn't worked with GOBO, so I decided to move all to the file
"eiffel-iup.h". I made some test with EiffelStudio to look how add c
files to the project, but I don't found how do this.
Thanks
On 5/17/20 12:46 AM, Alexander Kogtenkov kwaxer-JGs/[email protected] [gobo-eiffel] wrote=
:
>
> It turns out the errors are genuine:
> 1.
> In file included from big_file_C6_c.c:37:
> cd184.c: In function =E2=80=98inline_F184_4944=E2=80=99:
> cd184.c:127:53: error: request for member =E2=80=98arg7=E2=80=99 in somet=
hing not a
> structure or union
> =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, arg5, arg6. a=
rg7);
> The corresponding Eiffel class library/cd/cd_filled_areas.e, line 689:
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 "cdfCanvasSector=
($wgt, $xc, $yc, $w, $h, $a1. $a2);"
> There is a dot =E2=80=98.=E2=80=99 instead of a comma =E2=80=98,=E2=80=99=
before the last argument.
> 2.
> In file included from big_file_C6_c.c:40:
> iu197.c: In function =E2=80=98inline_F197_5505=E2=80=99:
> iu197.c:584:31: error: expected =E2=80=98;=E2=80=99 before =E2=80=98:=E2=
=80=99 token
> =C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):
> The corresponding Eiffel class library/iup.e, line 3454:
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 "return IupAppen=
d ($control, $new_child):"
> There is a trailing colon =E2=80=98:=E2=80=99 instead of a semicolon. (I =
believe, you
> can omit the trailing semicolon for functions altogether.)
> 3.
> iu197.c: In function =E2=80=98inline_F197_5530=E2=80=99:
> iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 undeclared (first use in th=
is function)
> =C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3);
> The corresponding Eiffel class library/iup.e, lines 3627-3632:
> =C2=A0 int_set_float (wgt: POINTER; name: POINTER; value: REAL_32)
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 external
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"C inline use %"=
eiffel-iup.h%""
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"IupSetFloat ($w=
ht, $name, $value);"
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end
> The argument name is `wgt`, but C code uses `wht`.
> 4.
> iu197.c: In function =E2=80=98inline_F197_5559=E2=80=99:
> iu197.c:1016:9: error: void value not ignored as it ought to be
> =C2=A01016 |=C2=A0 return iup_isshift (arg1);
> The corresponding Eiffel class library/iup.e, lines 3834-3839:
> =C2=A0=C2=A0=C2=A0 int_is_shift(status: POINTER): INTEGER
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0external
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"C inline use %"=
eiffel-iup.h%""
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"return iup_issh=
ift ($status);"
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end
> The Eiffel type of argument `status` is POINTER. It corresponds to C
> type `void *`. In C, `iup_isshift` is implemented as a macro expecting
> an argument of type `char *`. Therefore, the argument type should be
> cast to the expected one. Also, the macro does not protect arguments
> (you can contact the authors with a request to fix this issue, here is
> a short explanation of the problem:
> https://stackoverflow.com/questions/7186504/c-macros-and-use-of-arguments=
-in-parentheses).
> As a workaround, let=E2=80=99s enclose the argument in parentheses oursel=
ves:
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"return iup_issh=
ift (((char *) $status));"
> BTW, the errors you observe indicate that the C compiler found the
> required macro and function declarations that is good news.
> Unlike other compilers, when compiling in workbench mode or in
> finalized mode without dead code removal, EiffelStudio generates code
> for all features, not only for those that are reachable from the root
> creation procedure. As a result, if code compiles for you, it will
> compile for other users even if they use some other features from the
> library, unused in your code.
> Hopefully, you can go through the errors one by one and fix them in
> the sources. Let=E2=80=99s come back to the warnings as well as issues th=
at
> could not be fixed like those described above after this step.
> Alexander Kogtenkov
>
> Germ=C3=A1n Arias [email protected] [gobo-eiffel]
> <[email protected]>:
>
> Hi,
>
> The current code at repository compiles with GOBO. I will try it
> on Windows, but not sure what compiler is supposed to be used with
> the bin package. But I tried some time ago with Liberty Eiffel on
> Windows 10 and it worked.
>
> I get errors like:
>
> In file included from big_file_C6_c.c:37:
> cd184.c: In function =E2=80=98inline_F184_4944=E2=80=99:
> cd184.c:127:53: error: request for member =E2=80=98arg7=E2=80=99 in s=
omething not
> a structure or union
> =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, arg5, arg=
6. arg7);
> | ^
> cd184.c:127:2: error: too few arguments to function =E2=80=98cdfCanva=
sSector=E2=80=99
> =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, arg5, arg=
6. arg7);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 ^~~~~~~~~~~~~~~
> In file included from
> /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:36=
,
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 from cd192.c:58,
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C6_c.c:10:
>
> In file included from big_file_C6_c.c:40:
> iu197.c: In function =E2=80=98inline_F197_5505=E2=80=99:
> iu197.c:584:31: error: expected =E2=80=98;=E2=80=99 before =E2=80=98:=
=E2=80=99 token
> =C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;
> iu197.c: In function =E2=80=98inline_F197_5530=E2=80=99:
> iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 undeclared (first use i=
n this function)
> =C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~
>
> iu197.c: In function =E2=80=98inline_F197_5559=E2=80=99:
> iu197.c:1016:9: error: void value not ignored as it ought to be
> =C2=A01016 |=C2=A0 return iup_isshift (arg1);
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ^
>
> Thanks.
>
> On 5/16/20 1:08 AM, Alexander Kogtenkov kwaxer-JGs/[email protected]
> [gobo-eiffel] wrote:
>>
>> The warning you mention means that for some reason the required
>> header file was not included. If the updated code still compiles
>> with Gobo, could you commit your changes so that we can see what
>> could be wrong?
>> BTW, does your code work with Gobo on Windows? It might be easier
>> to check it in this case.
>> Also, what kind of errors do you get?
>> Alexander Kogtenkov
>>
>> Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>> <[email protected]>:
>>
>> Thanks, that solve the problem. But now I have other problem.
>> Eiffel-IUP don't have C++ code, but the library IM (a
>> dependency of IUP library) have C++ code. The IM
>> documentation say:
>>
>> "Even if your application is only in C, you must link with a
>> C++ capable linker. Using Tecmake set "LINKER :=3D g++" in your
>> "config.mak" when compiling with gcc (UNIX and Windows)."
>>
>> With Liberty Eiffel I link with the library "libstdc++" and
>> this solve the problem. With GOBO this library is
>> automatically linked (I don't know why). But now seems that
>> "ec" is compiling it in pure C, even if I add the libstdc++
>> library. The IM header file have a section:
>>
>> # =C2=A0 ifdef __cplusplus
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {
>> # =C2=A0 endif
>> some_declarations_here
>>
>> # =C2=A0 ifdef __cplusplus
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
>> # =C2=A0 endif
>> I don't know if this section should be compiled, but the
>> functions inside this section are precisely those mentioned
>> in the warnings:
>> warning: implicit declaration of function .....
>>
>> at the end I get a lot of warnings and errors. I don't have
>> to much experience with C and none with C++. Any advice?
>>
>> Thanks
>>
>> On 5/15/20 1:46 PM, Alexander Kogtenkov kwaxer-JGs/[email protected]
>> [gobo-eiffel] wrote:
>>>
>>> To improve efficiency of C compilation, EiffelStudio
>>> combines code generated for several classes in one large
>>> compilation unit. Schematically this looks like
>>> #includes for class A
>>> code for class A
>>> #includes for class B
>>> code for class B
>>> As a result, if classes refer to the same header file, the
>>> references may appear in the large compilation unit more
>>> than once:
>>> #include "library_x.h"
>>> code for A
>>> #include "library_x.h" <--- This causes the problem.
>>> code for B
>>> Unfortunately, C compilers do not like when the same
>>> function/structure/etc. are declared more than once.
>>> Fortunately, there is a simple workaround. Suppose, C header
>>> file "library_x.h" looks like
>>> /* Begin */
>>> #include "something.h"
>>> #include "something_else.h"
>>> some_declarations_here
>>> /* End */
>>> Adding include guards in the header file fixes multiple
>>> inclusion issue:
>>> /* Begin */
>>> #ifndef _library_x_h
>>> # =C2=A0 define _library_x_h
>>> # =C2=A0 if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
>>> # =C2=A0 =C2=A0 =C2=A0pragma once
>>> # =C2=A0 endif
>>> # =C2=A0=C2=A0include "something.h"
>>> # =C2=A0 include "something_else.h"
>>> # =C2=A0 ifdef __cplusplus
>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {
>>> # =C2=A0 endif
>>> some_declarations_here
>>>
>>> # =C2=A0 ifdef __cplusplus
>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
>>> # =C2=A0 endif
>>> #endif
>>> /* End */
>>> Note that the code above now compiles also with C++ that
>>> might be needed if some C++ code is involved.
>>> Alexander Kogtenkov
>>>
>>> Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>>> <[email protected]>:
>>>
>>> No, now I get errors about duplication of C function.
>>> There is only one C file "eiffel-iup.h" at library
>>> directory (EIFFEL_IUP variable), but I get:
>>>
>>> In file included from iu263.c:59,
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:53:
>>> /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffe=
l-iup.h:1020:6:
>>> error: redefinition of =E2=80=98connect_callback=E2=80=99
>>> =C2=A01020 | void connect_callback (Ihandle* ih, const char
>>> *name, const char *type, int operation) {
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~~~~~~~~~~~
>>> In file included from iu259.c:47,
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:2:
>>> /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffe=
l-iup.h:1020:6:
>>> note: previous definition of =E2=80=98connect_callback=E2=
=80=99 was here
>>> =C2=A01020 | void connect_callback (Ihandle* ih, const char
>>> *name, const char *type, int operation) {
>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~~~~~~~~~~~
>>>
>>> my es-library.ecf is:
>>>
>>> <?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
>>> <system
>>> =C2=A0=C2=A0=C2=A0
>>> xmlns=3D"http://www.eiffel.com/developers/xml/configuration=
-1-20-0"
>>> =C2=A0=C2=A0=C2=A0 xmlns:xsi=3D"http://www.w3.org/2001/XMLS=
chema-instance"
>>> xsi:schemaLocation=3D"http://www.eiffel.com/developers/xml/=
configuration-1-20-0
>>> http://www.eiffel.com/developers/xml/configuration-1-20-0.x=
sd"
>>> name=3D"eiffel-iup"
>>> library_target=3D"eiffel-iup"
>>> uuid=3D"3C312C2A-398E-4A0E-B834-1663DF82359F"
>>> >
>>>
>>> <description>
>>> description: "ECF file for the Eiffel-IUP Library"
>>> library: "Eiffel-IUP Library"
>>> copyright: "Copyright (c) 2016-2020, German Arias"
>>> license: "MIT License"
>>> </description>
>>>
>>> =C2=A0=C2=A0=C2=A0 <target name=3D"eiffel-iup">
>>> <root all_classes=3D"true"/>
>>> <file_rule>
>>> <exclude>/\.svn$</exclude>
>>> <exclude>/\.git$</exclude>
>>> <exclude>/EIFGENs$</exclude>
>>> </file_rule>
>>> <option warning=3D"true"/>
>>> <external_cflag
>>> value=3D"-I${EIFFEL_IUP}"/>
>>> <external_library location=3D"${IUP_LIBS}/libiup.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libiupcd.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libcd.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libiupcontrols.so=
">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libiupgl.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library
>>> location=3D"${IUP_LIBS}/libiupglcontrols.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libiupim.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libim.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library location=3D"${IUP_LIBS}/libiupimglib.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <external_library
>>> location=3D"${IUP_LIBS}/libcdcontextplus.so">
>>> <description>IUP Library</description>
>>> </external_library>
>>> <library name=3D"base"
>>> location=3D"$ISE_LIBRARY/library/base/base.ecf"/>
>>> <cluster name=3D"eiffel-iup" location=3D"./" recursive=3D"t=
rue">
>>> </cluster>
>>> </target>
>>> </system>
>>>
>>> Where is the problem?
>>>
>>> Thanks
>>>
>>> On 5/15/20 1:11 PM, Alexander Kogtenkov kwaxer-JGs/[email protected]
>>> [gobo-eiffel] wrote:
>>>>
>>>> Thank you for the update. Does it mean that the
>>>> application can now be compiled with EiffelStudio and
>>>> runs as expected?
>>>> Regards,
>>>> Alexander Kogtenkov
>>>>
>>>> Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>>>> <[email protected]>:
>>>> Sorry for the noise. I found the problem. At file
>>>> library.ecf of eiffel-iup I include the headers
>>>> from GOBO, otherwise it doesn't compile. Removing
>>>> this line solves the problem.
>>>>
>>>> Regards
>>>>
>>>> On 5/15/20 2:19 AM, Germ=C3=A1n Arias germanandre@gmx.=
es
>>>> [gobo-eiffel] wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Not sure if this is an specific problem of
>>>>> EiffelStudio or something in
>>>>> my ecf files or maybe a bad command line
>>>>> arguments. But when I try to
>>>>> compile a project with Eiffel Compiler at command
>>>>> line using:
>>>>>
>>>>> ec -freeze -c_compile -config es-system.ecf
>>>>>
>>>>> I get this error:
>>>>>
>>>>> [german@localhost example5 (master)]$ ec -freeze
>>>>> -c_compile -config
>>>>> es-system.ecf
>>>>> Eiffel Compilation Manager
>>>>> Version 19.05.10.3187 GPL Edition - linux-x86-64
>>>>>
>>>>> Degree 6: Examining System
>>>>> Degree 5: Parsing Classes
>>>>> Degree 4: Analyzing Inheritance
>>>>> Degree 3: Checking Types
>>>>> Degree 2: Generating Byte Code
>>>>> Freezing System Changes
>>>>> Degree -1: Generating Code
>>>>> System Recompiled.
>>>>> Preparing C compilation
>>>>> Makefile:2: *** recipe commences before first
>>>>> target.=C2=A0 Stop.
>>>>>
>>>>> My system is PCLinuxOS with GCC 9.3.0 and GNU Make 4.=
3
>>>>>
>>>>> You can test with the code from git repository:
>>>>>
>>>>> https://notabug.org/GermanGT/eiffel-iup
>>>>>
>>>>> but you should install the IUP libraries and set
>>>>> the environment
>>>>> variables EIFFEL_IUP to the IUP "library"
>>>>> directory and IUP_LIBS to the
>>>>> directory with IUP libraries. You should use
>>>>> "es-system.ecf" files with
>>>>> EiffelStudio compiler.
>>>>>
>>>>> Regards
>>>>>
>=20
--------------3567E1FF8D7DF6603FF6A8B2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<html>
<head>
</head>
=20
<body style=3D"background-color: #fff;">
<span style=3D"display:none"> </span>
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id=3D"ygrp-mlmsg" style=3D"position:relative;">
<div id=3D"ygrp-msg" style=3D"z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id=3D"ygrp-text" >
=20=20=20=20=20=20
=20=20=20=20=20=20
<p>
=20=20
=20=20
<p>Thanks for the explanation Alexander, I made the necessary
changes to remove all errors and warnings. Now the problem is when
linking. I get several errors about multiple definitions of the c
functions. I suppose this is because I have defined these
functions at the header file "eiffel-iup.h". There is a way to
solve this in the header file? Or I should move these functions to
a new file "eiffel-iup.c"? In this case, how tell the compiler
this new file should be compiled? <br>
</p>
<p>With Liberty Eiffel I had "eiffel-iup.h" and "eiffel-iup.c" but
this doesn't worked with GOBO, so I decided to move all to the
file "eiffel-iup.h". I made some test with EiffelStudio to look
how add c files to the project, but I don't found how do this.<br>
</p>
<p>Thanks<br>
</p>
<div class=3D"moz-cite-prefix">On 5/17/20 12:46 AM, Alexander
Kogtenkov <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:kwaxer=
@mail.ru">kwaxer-JGs/[email protected]</a> [gobo-eiffel] wrote:<br>
</div>
<blockquote type=3D"cite" cite=3D"mid:1589698015.37094053-/[email protected]=
u">
=20=20=20=20=20=20
<span>=C2=A0</span>
=20=20=20=20=20=20
<div id=3D"ygrp-text">
<p>
</p>
<div>It turns out the errors are genuine:</div>
<div>=C2=A0</div>
<div>1.</div>
<div>=C2=A0</div>
<div>In file included from big_file_C6_c.c:37:<br>
cd184.c: In function =E2=80=98inline_F184_4944=E2=80=99:<br>
cd184.c:127:53: error: request for member =E2=80=98arg7=E2=80=
=99 in
something not a structure or union<br>
=C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, a=
rg5,
arg6. arg7);<br>
=C2=A0</div>
<div>The corresponding Eiffel class
library/cd/cd_filled_areas.e, line 689:</div>
<div>=C2=A0</div>
<div>
<div>=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=
"cdfCanvasSector ($wgt, $xc, $yc, $w, $h,
$a1. $a2);"</div>
<div>=C2=A0</div>
<div>There is a dot =E2=80=98.=E2=80=99 instead of a comma =
=E2=80=98,=E2=80=99 before the
last argument.</div>
<div>=C2=A0</div>
<div>2.</div>
</div>
<div>=C2=A0</div>
<div>In file included from big_file_C6_c.c:40:<br>
iu197.c: In function =E2=80=98inline_F197_5505=E2=80=99:<br>
iu197.c:584:31: error: expected =E2=80=98;=E2=80=99 before =
=E2=80=98:=E2=80=99 token<br>
=C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):<br>
=C2=A0</div>
<div>
<div>The corresponding Eiffel class library/iup.e, line
3454:</div>
<div>=C2=A0</div>
<div>
<div>=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=
=A0 "return IupAppend ($control,
$new_child):"</div>
<div>=C2=A0</div>
<div>There is a trailing colon =E2=80=98:=E2=80=99 instead =
of a
semicolon. (I believe, you can omit the trailing
semicolon for functions altogether.)</div>
</div>
</div>
<div>=C2=A0</div>
<div>3.</div>
<div>=C2=A0</div>
<div>iu197.c: In function =E2=80=98inline_F197_5530=E2=80=99:<b=
r>
iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 undeclared (fir=
st use in
this function)<br>
=C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3);</div>
<div>=C2=A0</div>
<div>
<div>The corresponding Eiffel class library/iup.e, lines
3627-3632:</div>
<div>=C2=A0</div>
<div>
<div>=C2=A0 int_set_float (wgt: POINTER; name: POINTER;
value: REAL_32)<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 external<br>
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=
"C inline use %"eiffel-iup.h%""<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias<br>
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=
"IupSetFloat ($wht, $name, $value);"<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end</div>
<div>=C2=A0</div>
<div>The argument name is `wgt`, but C code uses `wht`.</di=
v>
</div>
<div>=C2=A0</div>
<div>4.</div>
<div>=C2=A0</div>
<div>iu197.c: In function =E2=80=98inline_F197_5559=E2=80=99:=
<br>
iu197.c:1016:9: error: void value not ignored as it
ought to be<br>
=C2=A01016 |=C2=A0 return iup_isshift (arg1);<br>
=C2=A0</div>
</div>
<div>
<div>The corresponding Eiffel class library/iup.e, lines
3834-3839:</div>
</div>
<div>
<div>=C2=A0=C2=A0=C2=A0 int_is_shift(status: POINTER): INTEGE=
R<br>
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0external<br>
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"C=
inline use %"eiffel-iup.h%""<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias<br>
=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"r=
eturn iup_isshift ($status);"<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end</div>
<div>=C2=A0</div>
<div>The Eiffel type of argument `status` is POINTER. It
corresponds to C type `void *`. In C, `iup_isshift` is
implemented as a macro expecting an argument of type
`char *`. Therefore, the argument type should be cast to
the expected one. Also, the macro does not protect
arguments (you can contact the authors with a request to
fix this issue, here is a short explanation of the
problem: <a href=3D"https://stackoverflow.com/questions/718=
6504/c-macros-and-use-of-arguments-in-parentheses" moz=3D"true">https://sta=
ckoverflow.com/questions/7186504/c-macros-and-use-of-arguments-in-parenthes=
es</a>).
As a workaround, let=E2=80=99s enclose the argument in
parentheses ourselves:</div>
<div>=C2=A0</div>
<div>=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=
=A0"return iup_isshift (((char *)
$status));"</div>
<div>=C2=A0</div>
<div>=C2=A0</div>
<div>BTW, the errors you observe indicate that the C
compiler found the required macro and function
declarations that is good news.</div>
<div>=C2=A0</div>
<div>Unlike other compilers, when compiling in workbench
mode or in finalized mode without dead code removal,
EiffelStudio generates code for all features, not only
for those that are reachable from the root creation
procedure. As a result, if code compiles for you, it
will compile for other users even if they use some other
features from the library, unused in your code.</div>
<div>=C2=A0</div>
<div>Hopefully, you can go through the errors one by one
and fix them in the sources. Let=E2=80=99s come back to the
warnings as well as issues that could not be fixed like
those described above after this step.</div>
<div>=C2=A0</div>
</div>
<div data=3D"container">
<div data=3D"content">
<div>
<div>Alexander Kogtenkov</div>
</div>
</div>
</div>
<div>=C2=A0</div>
<div>=C2=A0</div>
<blockquote style=3D"border-left:1px solid
#0857A6;margin:10px;padding:0 0 0 10px;">Germ=C3=A1n Arias
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:germanan=
[email protected]">[email protected]</a> [gobo-eiffel]
<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:gobo-eiffel=
@yahoogroups.com"><[email protected]></a>:<br>
=C2=A0
<div id>
<div class=3D"js-helper js-readmsg-msg">
<div>
<div id=3D"style_15896842130777841810_BODY">
<div class=3D"class_1589697332"><br>
=C2=A0
<p>Hi,</p>
<p>The current code at repository compiles with
GOBO. I will try it on Windows, but not sure
what compiler is supposed to be used with the
bin package. But I tried some time ago with
Liberty Eiffel on Windows 10 and it worked.</p>
<p>I get errors like:</p>
<p>=C2=A0</p>
<p>In file included from big_file_C6_c.c:37:<br>
cd184.c: In function =E2=80=98inline_F184_4944=E2=
=80=99:<br>
cd184.c:127:53: error: request for member
=E2=80=98arg7=E2=80=99 in something not a structu=
re or union<br>
=C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, a=
rg3,
arg4, arg5, arg6. arg7);<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
|=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
^<br>
cd184.c:127:2: error: too few arguments to
function =E2=80=98cdfCanvasSector=E2=80=99<br>
=C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, a=
rg3,
arg4, arg5, arg6. arg7);<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 ^~~~~~~~~~=
~~~~~<br>
In file included from
/home/german/Desarrollo/eiffel-dev/eiffel-iup/lib=
rary/eiffel-iup.h:36,<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from cd192.c:58,<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C6_c.c:10:</=
p>
<p>=C2=A0</p>
<p>In file included from big_file_C6_c.c:40:<br>
iu197.c: In function =E2=80=98inline_F197_5505=E2=
=80=99:<br>
iu197.c:584:31: error: expected =E2=80=98;=E2=80=
=99 before =E2=80=98:=E2=80=99
token<br>
=C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):=
<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ^<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ;<br>
iu197.c: In function =E2=80=98inline_F197_5530=E2=
=80=99:<br>
iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 und=
eclared
(first use in this function)<br>
=C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3)=
;<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~<=
br>
=C2=A0</p>
<p>iu197.c: In function =E2=80=98inline_F197_5559=
=E2=80=99:<br>
iu197.c:1016:9: error: void value not ignored
as it ought to be<br>
=C2=A01016 |=C2=A0 return iup_isshift (arg1);<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^<br>
=C2=A0</p>
<p>Thanks.</p>
<p>=C2=A0</p>
<div class=3D"moz-cite-prefix_mailru_css_attribute_=
postfix">On
5/16/20 1:08 AM, Alexander Kogtenkov <a class=3D"=
moz-txt-link-abbreviated_mailru_css_attribute_postfix" href=3D"//e.mail.ru/=
compose/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"noopener
noreferrer" moz=3D"true">kwaxer-JGs/[email protected]</a>
[gobo-eiffel] wrote:</div>
<blockquote type=3D"cite"><span>=C2=A0</span>
<div id=3D"ygrp-text_mailru_css_attribute_postfix=
">
<p>=C2=A0</p>
<div>The warning you mention means that for
some reason the required header file was
not included. If the updated code still
compiles with Gobo, could you commit your
changes so that we can see what could be
wrong?</div>
<div>=C2=A0</div>
<div>BTW, does your code work with Gobo on
Windows? It might be easier to check it in
this case.</div>
<div>=C2=A0</div>
<div>Also, what kind of errors do you get?</div=
>
<div>=C2=A0</div>
<div>
<div>
<div>
<div>Alexander Kogtenkov</div>
</div>
</div>
</div>
<div>=C2=A0</div>
<div>=C2=A0</div>
<blockquote style=3D"border-left:1px solid
#0857A6;margin:10px;padding:0 0 0 10px;">Germ=
=C3=A1n
Arias <a class=3D"moz-txt-link-abbreviated_ma=
ilru_css_attribute_postfix" href=3D"//e.mail.ru/compose/?mailto=3Dmailto%3a=
[email protected]" rel=3D"noopener noreferrer" moz=3D"true">germanandre@gm=
x.es</a>
[gobo-eiffel] <a class=3D"moz-txt-link-rfc239=
6E_mailru_css_attribute_postfix" href=3D"//e.mail.ru/compose/?mailto=3Dmail=
to%3agobo%[email protected]" rel=3D"noopener noreferrer" moz=3D"true=
"><[email protected]></a>:<br>
=C2=A0
<div id>
<div class=3D"js-helper_mailru_css_attribut=
e_postfix
js-readmsg-msg_mailru_css_attribute_postfix">
<div>
<div id=3D"style_15896082770181005214_B=
ODY_mailru_css_attribute_postfix">
<div class=3D"class_1589616296_mailru=
_css_attribute_postfix">=C2=A0
<p>Thanks, that solve the
problem. But now I have other
problem. Eiffel-IUP don't have
C++ code, but the library IM
(a dependency of IUP library)
have C++ code. The IM
documentation say:</p>
<p>"Even if your application is
only in C, you must link with
a C++ capable linker. Using
Tecmake set "LINKER :=3D g++"=
in
your "config.mak" when
compiling with gcc (UNIX and
Windows)."</p>
<p>=C2=A0</p>
<p>With Liberty Eiffel I link
with the library "libstdc++"
and this solve the problem.
With GOBO this library is
automatically linked (I don't
know why). But now seems that
"ec" is compiling it in pure
C, even if I add the libstdc+=
+
library. The IM header file
have a section:</p>
<div># =C2=A0 ifdef __cplusplus<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 exter=
n "C" {<br>
# =C2=A0 endif</div>
<div>=C2=A0</div>
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0
some_declarations_here</div>
<div><br>
# =C2=A0 ifdef __cplusplus<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
# =C2=A0 endif</div>
<div>=C2=A0</div>
<div>I don't know if this
section should be compiled,
but the functions inside this
section are precisely those
mentioned in the warnings:</div>
<div>=C2=A0</div>
<div>warning: implicit
declaration of function .....</di=
v>
<p>at the end I get a lot of
warnings and errors. I don't
have to much experience with C
and none with C++. Any advice=
?</p>
<p>Thanks</p>
<p>=C2=A0</p>
<div class=3D"moz-cite-prefix_mailr=
u_css_attribute_postfix_mailru_css_attribute_postfix">On
5/15/20 1:46 PM, Alexander
Kogtenkov <a class=3D"moz-txt-lin=
k-abbreviated_mailru_css_attribute_postfix_mailru_css_attribute_postfix" hr=
ef=3D"http://e.mail.ru/compose/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"no=
opener noreferrer" target=3D"_blank" moz=3D"true">kwaxer-JGs/[email protected]</a>
[gobo-eiffel] wrote:</div>
<blockquote type=3D"cite"><span>=C2=
=A0</span>
<div id=3D"ygrp-text_mailru_css_a=
ttribute_postfix_mailru_css_attribute_postfix">
<p>=C2=A0</p>
<div>To improve efficiency
of C compilation,
EiffelStudio combines code
generated for several
classes in one large
compilation unit.
Schematically this looks
like</div>
<div>
<div>=C2=A0</div>
<div>#includes for class A</d=
iv>
<div>code for class A</div>
<div>#includes for class B</d=
iv>
<div>code for class B</div>
</div>
<div>=C2=A0</div>
<div>As a result, if classes
refer to the same header
file, the references may
appear in the large
compilation unit more than
once:</div>
<div>=C2=A0</div>
<div>#include "library_x.h"</di=
v>
<div>code for A<br>
#include "library_x.h"
<--- This causes the
problem.</div>
<div>code for B<br>
=C2=A0</div>
<div>Unfortunately, C
compilers do not like when
the same
function/structure/etc.
are declared more than
once. Fortunately, there
is a simple workaround.
Suppose, C header file
"library_x.h" looks like</div=
>
<div>=C2=A0</div>
<div>/* Begin */</div>
<div>#include "something.h"
<div>#include
"something_else.h"</div>
<div>=C2=A0</div>
<div>some_declarations_here</=
div>
<div>/* End */</div>
=C2=A0
<div>Adding include guards
in the header file fixes
multiple inclusion
issue:</div>
<div>=C2=A0</div>
<div>/* Begin */</div>
<div>
<div>#ifndef
_library_x_h<br>
# =C2=A0 define
_library_x_h<br>
# =C2=A0 if
defined(_MSC_VER)
&& (_MSC_VER
>=3D 1020)<br>
# =C2=A0 =C2=A0 =C2=A0pra=
gma once<br>
# =C2=A0 endif</div>
<div>
<div>=C2=A0</div>
<div># =C2=A0=C2=A0includ=
e
"something.h"</div>
<div># =C2=A0 include
"something_else.h"</div=
>
</div>
<div>=C2=A0</div>
<div># =C2=A0 ifdef
__cplusplus<br>
=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 extern "C" {<br>
# =C2=A0 endif</div>
<div>=C2=A0</div>
<div>
<div>=C2=A0 =C2=A0 =C2=A0=
=C2=A0
some_declarations_here<=
/div>
<div>
<div><br>
# =C2=A0 ifdef
__cplusplus<br>
=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 }<br>
# =C2=A0 endif</div>
<div>#endif</div>
<div>/* End */</div>
<div>=C2=A0</div>
<div>Note that the
code above now
compiles also with
C++ that might be
needed if some C+=
+
code is involved.</di=
v>
</div>
</div>
</div>
<div>=C2=A0</div>
<div>
<div>
<div>
<div>Alexander
Kogtenkov</div>
</div>
</div>
</div>
<div>=C2=A0</div>
<div>=C2=A0</div>
<blockquote style=3D"border-l=
eft:1px
solid
#0857A6;margin:10px;padding=
:0
0 0 10px;">Germ=C3=A1n Aria=
s
<a class=3D"moz-txt-link-ab=
breviated_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=
=3D"http://e.mail.ru/compose/?mailto=3Dmailto%[email protected]" rel=3D"=
noopener
noreferrer" target=3D"_bl=
ank" moz=3D"true">[email protected]</a>
[gobo-eiffel] <a class=3D"m=
oz-txt-link-rfc2396E_mailru_css_attribute_postfix_mailru_css_attribute_post=
fix" href=3D"http://e.mail.ru/compose/?mailto=3Dmailto%3agobo%2deiffel@yaho=
ogroups.com" rel=3D"noopener
noreferrer" target=3D"_bl=
ank" moz=3D"true"><[email protected]></a>:<br>
=C2=A0
<div id>
<div class=3D"js-helper_m=
ailru_css_attribute_postfix_mailru_css_attribute_postfix
js-readmsg-msg_mailru_css_attribute_postfix_mailru_css_attribute_postfix">
<div>
<div id=3D"style_1589=
5705160941543087_BODY_mailru_css_attribute_postfix_mailru_css_attribute_pos=
tfix">
<div class=3D"class=
_1589601901_mailru_css_attribute_postfix_mailru_css_attribute_postfix">=C2=
=A0
<p>No, now I
get errors
about
duplication of
C function.
There is only
one C file
"eiffel-iup.h"
at library
directory
(EIFFEL_IUP
variable), but
I get:</p>
<p>=C2=A0</p>
In file
included from
iu263.c:59,<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:53:<br>
/home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:1020:6:
error:
redefinition
of
=E2=80=98connect_=
callback=E2=80=99<br>
=C2=A01020 | void
connect_callback
(Ihandle* ih,
const char
*name, const
char *type,
int operation)
{<br>
=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
^~~~~~~~~~~~~~~~<=
br>
In file
included from
iu259.c:47,<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:2:<br>
/home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:1020:6:
note: previous
definition of
=E2=80=98connect_callback=E2=80=99 was here<br>
=C2=A01020 | void
connect_callback
(Ihandle* ih,
const char
*name, const
char *type,
int operation)
{<br>
=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
^~~~~~~~~~~~~~~~
<p>=C2=A0</p>
<p>my
es-library.ecf
is:</p>
<p>=C2=A0</p>
<p><?xml
version=3D"1.0"
encoding=3D"ISO-8859-1"?><br>
<system<br>
=C2=A0=C2=A0=C2=
=A0 xmlns=3D<a class=3D"moz-txt-link-rfc2396E_mailru_css_attribute_postfix_=
mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"http://w=
ww.eiffel.com/developers/xml/configuration-1-20-0" rel=3D"noopener
noreferrer" targe=
t=3D"_blank" moz=3D"true">"http://www.eiffel.com/developers/xml/configurati=
on-1-20-0"</a><br>
=C2=A0=C2=A0=C2=
=A0 xmlns:xsi=3D<a class=3D"moz-txt-link-rfc2396E_mailru_css_attribute_post=
fix_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"http=
://www.w3.org/2001/XMLSchema-instance" rel=3D"noopener
noreferrer" targe=
t=3D"_blank" moz=3D"true">"http://www.w3.org/2001/XMLSchema-instance"</a><b=
r>
=C2=A0=C2=A0=C2=
=A0
xsi:schemaLocatio=
n=3D<a class=3D"moz-txt-link-rfc2396E_mailru_css_attribute_postfix_mailru_c=
ss_attribute_postfix_mailru_css_attribute_postfix" href=3D"http://www.eiffe=
l.com/developers/xml/configuration-1-20-0http://www...eiffel.com/developers=
/xml/configuration-1-20-0.xsd" rel=3D"noopener
noreferrer" targe=
t=3D"_blank" moz=3D"true">"http://www.eiffel.com/developers/xml/configurati=
on-1-20-0
http://www.eiffel.com/developers/xml/configuration-1-20-0.xsd"</a><br>
=C2=A0=C2=A0=C2=
=A0
name=3D"eiffel-iu=
p"<br>
=C2=A0=C2=A0=C2=
=A0
library_target=3D=
"eiffel-iup"<br>
=C2=A0=C2=A0=C2=
=A0
uuid=3D"3C312C2A-=
398E-4A0E-B834-1663DF82359F"<br>
><br>
<br>
=C2=A0=C2=A0=C2=
=A0
<description&g=
t;<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
description:
"ECF file for
the Eiffel-IUP
Library"<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
library:
"Eiffel-IUP
Library"<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
copyright:
"Copyright (c)
2016-2020,
German Arias"<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
license: "MIT
License"<br>
=C2=A0=C2=A0=C2=
=A0
</description&=
gt;<br>
<br>
=C2=A0=C2=A0=C2=
=A0 <target
name=3D"eiffel-iup"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<root
all_classes=3D"tr=
ue"/><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<file_rule>=
<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<exclude>/\=
..svn$</exclude><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<exclude>/\=
..git$</exclude><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<exclude>/E=
IFGENs$</exclude><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</file_rule>=
;<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<option
warning=3D"true"/=
><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_cfla=
g<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
value=3D"-I${EIFF=
EL_IUP}"/><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiup.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary>=C2=A0=C2=A0=C2=A0
=C2=A0=C2=A0=C2=
=A0<br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiupcd.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libcd.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiupcontrols.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiupgl.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiupglcontrols.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiupim.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libim.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libiupimglib.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<external_libr=
ary
location=3D"${IUP_LIBS}/libcdcontextplus.so"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
<description&g=
t;IUP
Library</description><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</external_lib=
rary><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<library
name=3D"base"
location=3D"$ISE_=
LIBRARY/library/base/base.ecf"/><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
<cluster
name=3D"eiffel-iu=
p"
location=3D"./"
recursive=3D"true"><br>
=C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
</cluster><=
br>
=C2=A0=C2=A0=C2=
=A0
</target><b=
r>
</system></p>
<p>=C2=A0</p>
<p>Where is
the problem?</p>
<p>Thanks</p>
<p>=C2=A0</p>
<div class=3D"moz=
-cite-prefix_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mail=
ru_css_attribute_postfix">On
5/15/20 1:11
PM, Alexander
Kogtenkov <a clas=
s=3D"moz-txt-link-abbreviated_mailru_css_attribute_postfix_mailru_css_attri=
bute_postfix_mailru_css_attribute_postfix" href=3D"http://e.mail.ru/compose=
/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"noopener
noreferrer" targe=
t=3D"_blank" moz=3D"true">kwaxer-JGs/[email protected]</a> [gobo-eiffel] wrote:</div>
<blockquote type=
=3D"cite"> <span>=C2=A0</span>
<div id=3D"ygrp-t=
ext_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_at=
tribute_postfix">
<p>=C2=A0</p>
<div>Thank you
for the
update. Does
it mean that
the
application
can now be
compiled with
EiffelStudio
and runs as
expected?</div>
<div>=C2=A0</div>
<div>Regards,</di=
v>
<div>
<div>
<div>
<div>Alexander
Kogtenkov</div>
</div>
</div>
</div>
<div>=C2=A0</div>
<div>=C2=A0</div>
<blockquote style=
=3D"border-left:1px
solid
#0857A6;margin:10=
px;padding:0
0 0 10px;">Germ=
=C3=A1n
Arias <a class=3D=
"moz-txt-link-abbreviated_mailru_css_attribute_postfix_mailru_css_attribute=
_postfix_mailru_css_attribute_postfix" href=3D"http://e.mail.ru/compose/?ma=
ilto=3Dmailto%[email protected]" rel=3D"noopener
noreferrer" targe=
t=3D"_blank" moz=3D"true">[email protected]</a> [gobo-eiffel] <a class=3D"=
moz-txt-link-rfc2396E_mailru_css_attribute_postfix_mailru_css_attribute_pos=
tfix_mailru_css_attribute_postfix" href=3D"http://e.mail.ru/compose/?mailto=
=3Dmailto%3agobo%[email protected]" rel=3D"noopener
noreferrer" targe=
t=3D"_blank" moz=3D"true"><[email protected]></a>:<br>
=C2=A0
<div id>
<div class=3D"js-=
helper_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css=
_attribute_postfix
js-readmsg-msg_mailru_css_attribute_postfix_mailru_css_attribute_postfix_ma=
ilru_css_attribute_postfix">
<div>
<div id=3D"style_=
15895686471961104927_BODY_mailru_css_attribute_postfix_mailru_css_attribute=
_postfix_mailru_css_attribute_postfix">
<div class=3D"cla=
ss_1589593025_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mai=
lru_css_attribute_postfix">Sorry
for the noise.
I found the
problem. At
file
library.ecf of
eiffel-iup I
include the
headers from
GOBO,
otherwise it
doesn't
compile.
Removing this
line solves
the problem.
<p>Regards</p>
<div class=3D"moz=
-cite-prefix_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mail=
ru_css_attribute_postfix_mailru_css_attribute_postfix">On
5/15/20 2:19
AM, Germ=C3=A1n
Arias <a class=3D=
"moz-txt-link-abbreviated_mailru_css_attribute_postfix_mailru_css_attribute=
_postfix_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D=
"http://e.mail.ru/compose/?mailto=3Dmailto%[email protected]" rel=3D"noo=
pener
noreferrer" targe=
t=3D"_blank" moz=3D"true">[email protected]</a> [gobo-eiffel] wrote:</div>
<blockquote type=
=3D"cite"><span>=C2=A0</span>
<div id=3D"ygrp-t=
ext_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_at=
tribute_postfix_mailru_css_attribute_postfix">
<p>Hi,<br>
<br>
Not sure if
this is an
specific
problem of
EiffelStudio
or something
in<br>
my ecf files
or maybe a bad
command line
arguments. But
when I try to<br>
compile a
project with
Eiffel
Compiler at
command line
using:<br>
<br>
ec -freeze
-c_compile
-config
es-system.ecf<br>
<br>
I get this
error:<br>
<br>
[german@localhost example5 (master)]$ ec -freeze -c_compile -config<br>
es-system.ecf<br>
Eiffel
Compilation
Manager<br>
Version
19.05.10.3187
GPL Edition -
linux-x86-64<br>
<br>
Degree 6:
Examining
System<br>
Degree 5:
Parsing
Classes<br>
Degree 4:
Analyzing
Inheritance<br>
Degree 3:
Checking Types<br=
>
Degree 2:
Generating
Byte Code<br>
Freezing
System Changes<br=
>
Degree -1:
Generating
Code<br>
System
Recompiled.<br>
Preparing C
compilation<br>
Makefile:2:
*** recipe
commences
before first
target.=C2=A0 Sto=
p.<br>
<br>
My system is
PCLinuxOS with
GCC 9.3.0 and
GNU Make 4.3<br>
<br>
You can test
with the code
from git
repository:<br>
<br>
<a class=3D"moz-t=
xt-link-freetext_mailru_css_attribute_postfix_mailru_css_attribute_postfix_=
mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"https://=
notabug.org/GermanGT/eiffel-iup" rel=3D"noopener noreferrer" target=3D"_bla=
nk" moz=3D"true">https://notabug.org/GermanGT/eiffel-iup</a><br>
<br>
but you should
install the
IUP libraries
and set the
environment<br>
variables
EIFFEL_IUP to
the IUP
"library"
directory and
IUP_LIBS to
the<br>
directory with
IUP libraries.
You should use
"es-system.ecf" files with<br>
EiffelStudio
compiler.<br>
<br>
Regards<br>
=C2=A0</p>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>=C2=A0</div>
</div>
</blockquote>
=C2=A0</div>
</div>
</div>
</div>
</div>
</blockquote>
<div>=C2=A0</div>
</div>
=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
<!-- end group email -->
</blockquote>
=20=20
</p>
</div>
=20=20=20=20=20
<!--~-|**|PrettyHtmlStart|**|-~-->
<div style=3D"color: #fff; height: 0;">__._,_.___</div>
=20=20=20=20=20=20=20=20=20=20
=20=20
=20
=20=20=20=20
<div style=3D"clear:both"> </div>
<div id=3D"fromDMARC" style=3D"margin-top: 10px;">
<hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background=
-color:#E3E3E3;">
Posted by: =3D?UTF-8?Q?Germ=3Dc3=3Da1n_Arias?=3D <germanandre@gm=
x.es> <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; ba=
ckground-color:#E3E3E3;">
</div>
<div style=3D"clear:both"> </div>
<table cellspacing=3D4px style=3D"margin-top: 10px; margin-bottom: 10px=
; color: #2D50FD;">
<tbody>
<tr>
<td style=3D"font-size: 12px; font-family: arial; font-weight: bo=
ld; padding: 7px 5px 5px;" >
<a style=3D"text-decoration: none; color: #2D50FD=
" href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffel/conversations/mes=
sages/1918;_ylc=3DX3oDMTJwdDc5c3RvBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyNzAEZ3Jwc=
3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE5MTgEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxNTg5Nzg4=
MTM1?act=3Dreply&messageNum=3D1918">Reply via web post</a>
</td>
<td>•</td>
<td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
<a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bgobo-=
eiffel%5D%20Problem%20with%20Makefile%20using%20EiffelStudio" style=3D"text=
-decoration: none; color: #2D50FD;">
Reply to sender </a>
</td>
<td>•</td>
<td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;">
<a href=3D"mailto:[email protected]?subject=3DRe%3A%2=
0%5Bgobo-eiffel%5D%20Problem%20with%20Makefile%20using%20EiffelStudio" styl=
e=3D"text-decoration: none; color: #2D50FD">
Reply to group </a>
</td>
<td>•</td>
<td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
<a href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffel/conv=
ersations/newtopic;_ylc=3DX3oDMTJldWdwdWppBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyN=
zAEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTU4OTc4ODEzNQ--=
" style=3D"text-decoration: none; color: #2D50FD">Start a New Topic</a>
</td>
<td>•</td>
<td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;color: #2D50FD;" >
<a href=3D"https://groups.yahoo.com/neo/groups/=
gobo-eiffel/conversations/topics/1909;_ylc=3DX3oDMTM0bmlzbms5BF9TAzk3MzU5Nz=
E0BGdycElkAzE1MjIyNzAEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE5MTgEc2VjA2Z0cgRzb=
GsDdnRwYwRzdGltZQMxNTg5Nzg4MTM1BHRwY0lkAzE5MDk-" style=3D"text-decoration: =
none; color: #2D50FD;">Messages in this topic</a>
(10)
</td>
</tr>
</tbody>
</table>
=20=20=20=20=20=20=20=20
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->
<div id=3D"ygrp-grfd" style=3D"font-family: Verdana; font-size: 12px; p=
adding: 15px 0;">
=20=20=20=20=20=20
<!-- |**|begin egp html banner|**| -->
To Post a message, send it to: [email protected]<BR=
>
To Unsubscribe, send a blank message to: gobo-eiffel-unsubscribe-B11MqFFcr06IwRZHo2/[email protected]=
m=20=20=20=20=20=20
<!-- |**|end egp html banner|**| -->
</div>
=20=20
=20
<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-family: Ver=
dana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
<span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-transf=
orm: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffe=
l/info;_ylc=3DX3oDMTJlZ3Awc2JyBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyNzAEZ3Jwc3BJZ=
AMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTU4OTc4ODEzNQ--" style=3D"t=
ext-decoration: none;">Visit Your Group</a></span>
<ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in=
line;">
</ul>
</div>
<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
<a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJkZzBjNGQwBF9TAzk3ND=
c2NTkwBGdycElkAzE1MjIyNzAEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzd=
GltZQMxNTg5Nzg4MTM1" style=3D"float: left;"><img src=3D"https://s.yimg.com/=
ru/0.9.12/min/css/yahoo_en-US_f_pw_101x21.png" height=3D"21" width=3D"101" =
alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a>
<div style=3D"color: #747575; float: right;"> • <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> • <a href=3D"mailto:gobo-eiffel-unsubscribe@yaho=
ogroups.com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubsc=
ribe</a> • <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms=
/" style=3D"text-decoration: none;">Terms of Use</a> </div>
</div>
<br>
<!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
=20
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m=
argin:0 0 25px 0; background: #fff;">
<!-- Start Recommendations -->
<div id=3D"ygrp-reco">
</div>
<!-- End Recommendations -->
</div> <!-- |**|end egp html banner|**| -->
<div style=3D"clear:both; color: #FFF; font-size:1px;">.</div>
</div>
<img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D1522270/grpspI=
d=3D1705006764/msgId=3D1918/stime=3D1589788135" width=3D"1" height=3D"1"> <=
br>
<img src=3D"http://y.analytics.yahoo.com/fpc.pl?ywarid=3D515FB27823A7407E&a=
=3D10001310322279&js=3Dno&resp=3Dimg" width=3D"1" height=3D"1">=20
<div style=3D"color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type=3D"text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}
#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}
#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}
#ygrp-mkp #ads {
margin-bottom: 10px;
}
#ygrp-mkp .ad {
padding: 0 0;
}
#ygrp-mkp .ad p {
margin: 0;
}
#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}
#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}
#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}
#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}
#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}
#activity span {
font-weight: 700;
}
#activity span:first-child {
text-transform: uppercase;
}
#activity span a {
color: #5085b6;
text-decoration: none;
}
#activity span span {
color: #ff7900;
}
#activity span .underline {
text-decoration: underline;
}
.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}
.attach div a {
text-decoration: none;
}
.attach img {
border: none;
padding-right: 5px;
}
.attach label {
display: block;
margin-bottom: 5px;
}
.attach label a {
text-decoration: none;
}
=20=20
blockquote {
margin: 0 0 0 4px;
}
.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}
.bold a {
text-decoration: none;
}
dd.last p a {
font-family: Verdana;
font-weight: 700;
}
dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}
dd.last p span.yshortcuts {
margin-right: 0;
}
div.attach-table div div a {
text-decoration: none;
}
div.attach-table {
width: 400px;
}
div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi=
le-title a:visited {
text-decoration: none;
}
div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div=
..photo-title a:visited {
text-decoration: none;
}
div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}
.green {
color: #628c2a;
}
.MsoNormal {
margin: 0 0 0 0;
}
o {
font-size: 0;
}
#photos div {
float: left;
width: 72px;
}
#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}
#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}
#reco-category {
font-size: 77%;
}
#reco-desc {
font-size: 77%;
}
.replbq {
margin: 4px;
}
#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}
#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}
#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}
#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}
#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}
#ygrp-mlmsg * {
line-height: 1.22em;
}
#ygrp-mlmsg #logo {
padding-bottom: 10px;
}
#ygrp-msg p a {
font-family: Verdana;
}
#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}
#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}
#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}
#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}
#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}=20
#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}
#ygrp-text {
font-family: Georgia;
}
#ygrp-text p {
margin: 0 0 1em 0;
}
#ygrp-text tt {
font-size: 120%;
}
#ygrp-vital ul li:last-child {
border-right: none !important;=20
}=20
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
--------------3567E1FF8D7DF6603FF6A8B2--