DDK Compilation Issues

I am having some problems precompiling tSTC.h due to all of the inlining.
There is a switch (___tSTC_h_no_inline___) to keep the .ipp file from being included in the .h, but since all of the class methods are declared as inline, I still end up with problems. Short of doing a find/replace on all 6000+ occurrences of "inline", I am looking for an alternative that will speed up my compiles during development.
I notice that the files are auto-generated: is it possible to get a version of the DDK that has been produced in a non-inlined form?
scott gillespie
applied brain, inc.

The specific problem I was having turned out to be: two different sets of compile switches were passed to precompiler/compiler (gcc 3.1), thus causing problems at link time.
However, I still have need for a non-inlined compile, and have already done roughly as you suggested.
Thanks for the tips...
spg
scott gillespie
applied brain, inc.

Similar Messages

  • BPEL Composite compilation issues in SOA Suite 11.1.2

    I imported a SOA Composite BPEL project developed on SOA Suite 11.1.1 in SOA Suite 11.1.2. When compiling the project through ant using the "ant-sca-compile.xml" generated through JDev in 11.1.1 I am getting the following exception
    java.lang.NoClassDefFoundError: oracle/fabric/common/FabricException
    Caused by: java.lang.ClassNotFoundException: oracle.fabric.common.FabricException
         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    Could not find the main class: oracle.soa.scac.ValidateComposite. Program will exit.
    Exception in thread "main"
    Have checked all my classpaths and jar's which are found to be in order. What can be the problem?

    I changed some of the paths in the build file but now I am having compilation issues. It says the classpath is not set correctly. But I have included all the jar's properly in the build.xml.
    Any pointers to where I might be going wrong?
    D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\build\ant-sca-compile.xml
    detokeniser:
    scac:
    [scac] Validating composite : 'D:/CommonTechServices/INT_ARCH/Construction/src/soa/CommonServices/NotificationServiceBpel/composite.xml'
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:14: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:15: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:16: package com.collaxa.cube.engine.core.map does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:21: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:100: package com.collaxa.cube.engine.core.ICubeProcess does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:107: package com.collaxa.cube.engine.core.ICubeProcess does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:148: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:148: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:148: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:390: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:390: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:401: package com.collaxa.cube.engine.core.map does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:401: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:401: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.util does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.util does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:857: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:900: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:900: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:930: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:941: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:941: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:990: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1044: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1044: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1089: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1089: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1105: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1122: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1122: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1122: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1300: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1404: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1404: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1449: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1449: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1465: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1509: package com.collaxa.cube.engine.types.bpel does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1526: package com.collaxa.cube.engine.types.bpel does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1553: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1607: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1607: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1652: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1652: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1668: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1685: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1685: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1685: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1780: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1797: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1797: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1797: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1964: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1981: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1981: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:1981: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2154: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2208: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2208: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2253: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2253: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2269: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2286: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2286: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2286: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2381: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2398: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2398: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2398: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2565: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2582: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2582: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2582: package com.collaxa.cube does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2755: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2859: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2859: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2904: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2904: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2920: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2964: package com.collaxa.cube.engine.types.bpel does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:2981: package com.collaxa.cube.engine.types.bpel does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:3008: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine.core does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine does not exist
    [scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
    l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine.core does not exist
    [scac] Note: D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\
    orabpel\notificationservicebpel\BPEL_BIN.java uses unchecked or unsafe operations.
    [scac] Note: Recompile with -Xlint:unchecked for details.
    [scac] FATAL_ERROR: location {ns:composite/ns:component[@name='NotificationServiceBpel']}(30,45): Failed to compile bpel generated classes.
    [scac] failure to compile the generated BPEL classes for BPEL process "NotificationServiceBpel" of composite "default/NotificationServiceBpel!1.0
    [scac] The class path setting is incorrect.
    [scac] Ensure that the class path is set correctly. If this happens on the server side, verify that the custom classes or jars which this BPEL pr
    ocess is depending on are deployed correctly. Also verify that the run time is using the same release/version.
    [scac]
    BUILD FAILED

  • Flash Builder 4.7 frequent compiler issues/restarts

    Basically Flash Builder 4.7 on Mac OSX 10.7.5 is unusable. Very frustrating.  Constant compiler issues that require frequent cleaning, closing of projects, restarts of FB, and even re-installs.  I've seen none of these issues on FB 4.6 with the same projects/code.
    The most common visible compiler errors are these two that randomly appear:
    1) An internal build error has occurred
    2) classes must not be nested
    I tried increasing memory as some have suggested, but this has no effect.
    It takes me 100 times longer to code now becuase every tiny code change cuases these errors.  Crazy!
    Before I revert back to FB 4.6, any suggestions? 
    Thanks,
    Don

    Hi!
    Close any unneeded projects in workspace.
    You can also split your large project to few libraries compiled into SWC. After compiling libraries, if not need to change often, close their projects. When such projects are closed main project compiling with just use of SWC libraries usually takes much less resources.

  • Com.sun.security.auth.module.NTSystem compilation issues in Unix

    Hi ,
    I m using com.sun.security.auth.module.NTSystem in one my java application to get the current domain. The application and app server are running on windows OS.
    Now i want to switch my OS to Unix, where i m getting compilation issues with com.sun.security.auth.module.NTSystem ,
    1)Do i need to change the module from NTSystem to UnixSystem?
    2) I m developing the java application in Eclipse 3.2 with java 1.4 , when i m trying to import the below statment com.sun.security.auth.module.UnixSystem i couldn't? Could you please let me how i can import the UnixSystem or NTSystem will work?
    Appreciate your help!!!!
    Regards,
    Ravi.

    Unix, where i m getting compilation issues with com.sun.security.auth.module.NTSystemOf course.
    Do i need to change the module from NTSystem to UnixSystem?Of course.

  • SAP RFC SDK 7.10 Compilation Issues

    Hello ,
    We have a Pro*C program that is using the RFC SDK 7.10
    When we are compiling our program with Pro*C Compiler in HP UX 11iv2 os we are getting the following errors:
    SAP_U16_PROTOTYPE_STDC(mkstemp)..1 PCC-S-02201, Encountered the symbol "mkstemp" when expecting one of the following: Error at line 1895, column 1 in file /home/psoni/rfcsdk-710/orgseclib/sapuc.h  SAP_U16_PROTOTYPE_UO(dirname) 1 
    PCC-S-02201, Encountered the symbol "SAP_U16_PROTOTYPE_UO_HLP" when expecting on
    e of the following: ; , = ( [ * ? | & < > + - / % . ^ *= /= %= += -= <<= >>= &&=
       ||= ^= | & == != <= >= << >> ++ -- ->
    The symbol ";" was substituted for "SAP_U16_PROTOTYPE_UO_HLP" to continue.
    Syntax error at line 1901, column 1, file /home/psoni/rfcsdk-710/orgseclib/sapuc.h:
    Error at line 1901, column 1 in file /home/psoni/rfcsdk-710/orgseclib/sapuc.h
    SAP_U16_PROTOTYPE(ecvt) 1
    PCC-S-02201, Encountered the symbol "extern" when expecting one of the following
    :   ; , = ( [ * ? | & < > + - / % . ^ *= /= %= += -= <<= >>= &&=
       ||= ^= | & == != <= >= << >> ++ -- ->
    I had checked the files sapuc.h and sapucx.h are correctly included in my program.
    Also I checked for the errors : that the reference of some constants like 
    SAP_U16_PROTOTYPE is present is sapuc.h - However I am not able to
    identify the cause of compilation issues.
    Please can anyone guide me - or give any hints as to how this compilation issues can be resolved.
    On sap rfc sdk version 6.20 with HPUnix 11iV1  we did not face such problems. Post that release  we have tried all libraries including 6.40  and all of them are giving the above errors.
    Thanks for the help.
    Regards,
    Shivani

    This compiler error looks really strange.
    Without your sources (of the affected file) and the full command line it's impossible to suggest something.
    Markus

  • Native extension - compiler issue

    Hi,
    First, I compile an iOS app with a native extension developped by ADOBE : http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html#articl econtentAdobe_numberedheader_3
    It's work well
    Then, I made myself the iOS library on xcode. It's OK as well
    Then, I made the ANE file following the tutorial http://custardbelly.com/blog/2011/09/21/air-native-extension-example-ibattery-for-ios/. It's seem OK
    I create my air app with Flash Builder. I load ANE, SWC...everything seem ok
    When I compile my Iphone Application with Flex, there is this error :
    An erreor appears during the application packaging (my translation):
    ld warning: in C:\\Users\\Tony\\AppData\\Local\\Temp\\c6468656-be35-4f05-8d51-0dd54063cefd/libcom.adobe. LEDTorch.a, file is not of required architecture
    Undefined symbols:
      "_ExtFinalizer", referenced from:
          _g_com_adobe_air_fre_fmap in extensionglue.o
      "_ExtInitializer", referenced from:
          _g_com_adobe_air_fre_fmap in extensionglue.o
    ld: symbol(s) not found
    Compilation failed while executing : ld64
    Someone could help me?
    I'm working on this bug for 2 days
    Thanks in advance !
    Emmanuel

    Hi,
    Apparently, the issue  is the following:  (find in the forum of
    http://www.liquid-photo.com/2011/10/28/native-extension-for-adobe-air-and-ios-101/#comment -322
    Apparently X-Code was trying to build NativeAlert.m as Objective-C++ source
    instead of Objective-C source. Silly mistake really. It took starting the
    project over again and trauling through the project settings to figure out
    what was wrong. Oh well, all sorted now.
    But i didn't succeed in setting the project with the corrects parameter.
    Could you help me?
    Thanks in advance
    Regards
    E.Fuchs
    2012/2/10 Saumitra Bhave <[email protected]>
       Re: Native extension - compiler issue  created by Saumitra Bhave<http://forums.adobe.com/people/SaumiB>in
    Mobile Development - View the full discussion<http://forums.adobe.com/message/4198519#4198519>

  • PHP5.2.4 with oci8 Compiling issues

    Hi I had installed apache .2.0.54 rpm and installed oracle-instantclient-basic and oracle-instantclient-devel and compliled php-5.2.4 with the follwoing options
    sudo ./configure with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client/lib/  prefix=/opt/php with-apxs2=/usr/local/apache2/bin/apxs     enable-sigchild --with-config-file-path=/etc/httpd/conf
    Make gives a error
    /usr/bin/ld: skipping incompatible /usr/lib/oracle/10.2.0.3/client/lib//libclntsh.so when searching for -lclntsh
    /usr/bin/ld: cannot find -lclntsh
    collect2: ld returned 1 exit status
    make: *** [libphp5.la] Error 1

    Hi Cj
    Thx As you told i followed the steps and Compiling issues is resolved and i had some other issue like oci8 extns was not visible in phpinfo.php and after Trial and error its started working.
    The reason for oci8 not visible is i httpd-devel was not installed , after installing httpd-devel and recompiling with the following options oci8 was enabled.
    ./configure \
    --with-oci8=instantclient,/opt/instantclient_10_2 \
    prefix=/opt/php   with-apxs2=/usr/sbin/apxs \
    enable-sigchild with-config-file-path=/etc/httpd/conf
    Thx for the Help :) :) :)
    Christian Jones
    Karthik

  • Pro*C - PERCENT_RANK() compilation issue

    Hello,
    I have a pro*C compilation issue, while using PERCENT_RANK() in-built function. I am using Oracle 10.2.0.4.
    Here are the details :
    The Pro*C code :
    ================================================== ========
    int srccct2_insert()
    EXEC SQL
    select * from (
    select
    trad_code,
    comp_code,
    file_code,
    insp_yymm,
    poly_numb,
    entr_numb,
    data_code,
    caus_date,
    insd_code,
    rule_ordr,
    sex_code,
    entr_age,
    resd_numb,
    entr_name,
    hire_date,
    entr_date,
    work_year,
    hire_grad,
    datt_entr,
    ijry_entr,
    wkdt_entr,
    base_saly,
    expt_amnt,
    rsrv_rato,
    rsrv_amnt,
    PERCENT_RANK() OVER (ORDER BY base_saly) pr FROM SRCCCT2 where trad_code = 'N' AND
    comp_code = '01' AND
    insp_yymm = '200403' AND
    data_code = 'B' AND
    hire_grad = '2' AND
    base_saly > 0)
    where pr > 0.05 and pr < 0.95 and base_saly > 641840;
    return SUCCESS;
    ================================================== ======
    I am compiling it like this :
    /oracle/product/10.2.0/bin/proc iname=srascs01.pc ireclen=320 oreclen=320 sqlcheck=full userid=retr/rteru maxopencursors=32 dbms=v8 char_map=varchar2 release_cursor=yes include=/oracle/product/10.2.0/precomp/public include=/ihome/hp/../common/include include=/ihome/retr/include include=/usr/include include=/ihome/hp/portlib DEFINE=HPUX
    I have put the same sql statements in the sql promt and it works fine. But in Pro*C when i compile it using above options, here is the error :
    ================================================== ======
    Pro*C/C++: Release 10.2.0.4.0 - Production on Thu Feb 25 00:57:42 2010
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    System default option values taken from: /oracle/product/10.2.0/precomp/admin/pcscfg.cfg
    Syntax error at line 192, column 28, file srascs01.pc:
    Error at line 192, column 28 in file srascs01.pc
    PERCENT_RANK() OVER (ORDER BY base_saly) pr
    ...........................1
    PCC-S-02201, Encountered the symbol "(" when expecting one of the following:
    , into, from,
    Error at line 0, column 0 in file srascs01.pc PCC-F-02102, Fatal error while doing C preprocessing
    *** Error exit code 1
    Stop.
    *** Error exit code 1
    Stop.
    ================================================== =======
    After searching in this website, i saw a related thread. But that solution did not work for me. I have posted a reply on that aswell, for Mark_Williams. Here is the related link:
    Re: help for analysis function in PRO*C
    Please help me on this.
    Thanks,
    Kumar

    Hi Sumit,
    Thanks much for a reply.
    I am very novice for Pro*C. Please bear with me, if i sound odd anywhere.
    I did check the program again. When i leave EXEC SQL and put the whole SELECT statement in double quotes and then postfix back slashes at each line in the SELECT statement, compilation succeeds. But I am just wondering, if this works fine, even if we don't use, "EXEC SQL" ?
    When we use "EXEC SQL" and double quotes also, there seems to be two double quotes before SELECT and so compilation fails, with the below error msg. I think "EXEC SQL" is also appending a double quote.(??)
    I did not really understand when you said "declaring the sql statement and calling EXEC SQL PREPARE". Are you talking about declaring the sql statement in sqlplus ?
    If the above method of removing "EXEC SQL" and using double quotes and slashes is correct, then i think we anyway need not do anything else as the compilation went through.
    Thanks again,
    -Kumar

  • Batik-related compiler issue

    <div class=Section1><br /><br /><p class=MsoNormal>I received this error calling the flex2.tools.Compiler&#8217;s<br />main[] method.  The MXML input compiles successfully in the Flex 2<br />builder.  I wanted to check to see if anyone had experienced this before<br />digging deeper into source code.<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>--Scott<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>------------------------------------------------------------------------- ----------------------<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>Error:<br />org.apache.batik.css.parser.Parser.getLineNumber()I</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>java.lang.NoSuchMethodError:<br />org.apache.batik.css.parser.Parser.getLineNumber()I</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flash.css.StyleParser.getLineNumber(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>StyleParser.java:208</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flash.css.StyleDocumentHandler.startFontFace(</span><u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:navy'>StyleDocumentHandler.java:100</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />org.apache.batik.css.parser.Parser.parseFontFaceRule(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>Parser.java:484</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />org.apache.batik.css.parser.Parser.parseStyleSheet(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>Parser.java:224</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at flash.css.StyleParser.init(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>StyleParser.java:172</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flash.css.StyleParser.&lt;init&gt;(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>StyleParser.java:106</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flash.css.StyleSheet.parse(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>StyleSheet.java:54</span></u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:red'>)</span><span style='font-size:<br />10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.analyzer.SyntaxAnalyzer.parseStyle(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>SyntaxAnalyzer.java:551</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>SyntaxAnalyzer.java:122</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.dom.StyleNode.analyze(</span><u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:navy'>StyleNode.java:50</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.dom.AnalyzerAdapter.traverse(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>AnalyzerAdapter.java:172</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.dom.AnalyzerAdapter.analyze(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>AnalyzerAdapter.java:164</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>SyntaxAnalyzer.java:55</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.dom.Node.analyze(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>Node.java:47</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.InterfaceCompiler.parse1(</span><u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:navy'>InterfaceCompiler.java:222</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.mxml.Compiler.parse1(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>Compiler.java:95</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.API.parse1(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:2306</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.API.parse1(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:2259</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.API.batch2(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:367</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.API.batch(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:1108</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.API.compile(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:1281</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.compiler.API.compile(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:1201</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.tools.Compiler.mxmlc(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>Compiler.java:240</span></u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:red'>)</span><span style='font-size:<br />10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />flex2.tools.Compiler.main(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>Compiler.java:53</span></u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:red'>)</span><span style='font-size:<br />10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>      at<br />net.sf.jasperreports.export.flex.JRSwfExporter.exportReportToStream(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>JRSwfExporter.java:268</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";<br />color:red'>      at net.sf.jasperreports.export.flex.JRSwfExporter.exportReport(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>JRSwfExporter.java:177</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><o:p></o:p></p><br /><br /></div>

    Would you provide some details on how you’re calling this, which branch (e.g. Compiler is now known as Mxmlc on the trunk)? You need to have all libs from trunk/lib on the classpath.
    - Jono
    From: chauncy <[email protected]>
    Reply-To: <[email protected]>
    Date: Thu, 17 Apr 2008 10:31:31 -0700
    To: <[email protected]>
    Subject: Batik-related compiler issue
    A new discussion was started by chauncy in
    Developers --
      Batik-related compiler issue
    I received this error calling the flex2.tools.Compiler’s main[] method.  The MXML input compiles successfully in the Flex 2 builder.  I wanted to check to see if anyone had experienced this before digging deeper into source code.
    --Scott
    Error: org.apache.batik.css.parser.Parser.getLineNumber()I
    java.lang.NoSuchMethodError: org.apache.batik.css.parser.Parser.getLineNumber()I
          at flash.css.StyleParser.getLineNumber(
    StyleParser.java:208
          at flash.css.StyleDocumentHandler.startFontFace(
    StyleDocumentHandler.java:100
          at org.apache.batik.css.parser.Parser.parseFontFaceRule(
    Parser.java:484
          at org.apache.batik.css.parser.Parser.parseStyleSheet(
    Parser.java:224
          at flash.css.StyleParser.init(
    StyleParser.java:172
          at flash.css.StyleParser.<init>(
    StyleParser.java:106
          at flash.css.StyleSheet.parse(
    StyleSheet.java:54
          at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.parseStyle(
    SyntaxAnalyzer.java:551
          at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(
    SyntaxAnalyzer.java:122
          at flex2.compiler.mxml.dom.StyleNode.analyze(
    StyleNode.java:50
          at flex2.compiler.mxml.dom.AnalyzerAdapter.traverse(
    AnalyzerAdapter.java:172
          at flex2.compiler.mxml.dom.AnalyzerAdapter.analyze(
    AnalyzerAdapter.java:164
          at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(
    SyntaxAnalyzer.java:55
          at flex2.compiler.mxml.dom.Node.analyze(
    Node.java:47
          at flex2.compiler.mxml.InterfaceCompiler.parse1(
    InterfaceCompiler.java:222
          at flex2.compiler.mxml.Compiler.parse1(
    Compiler.java:95
          at flex2.compiler.API.parse1(
    API.java:2306
          at flex2.compiler.API.parse1(
    API.java:2259
          at flex2.compiler.API.batch2(
    API.java:367
          at flex2.compiler.API.batch(
    API.java:1108
          at flex2.compiler.API.compile(
    API.java:1281
          at flex2.compiler.API.compile(
    API.java:1201
          at flex2.tools.Compiler.mxmlc(
    Compiler.java:240
          at flex2.tools.Compiler.main(
    Compiler.java:53
          at net.sf.jasperreports.export.flex.JRSwfExporter.exportReportToStream(
    JRSwfExporter.java:268
          at net.sf.jasperreports.export.flex.JRSwfExporter.exportReport(
    JRSwfExporter.java:177
    View/reply at Batik-related compiler issue
    <http://www.adobeforums.com/webx?13@@.59b50561>
    Replies by email are OK.
    Use the unsubscribe
    <http://www.adobeforums.com/webx?280@@.59b50561!folder=.3c060fa3>  form to cancel your email subscription.

  • "Occasionally" successful compilation issue on sun4v machine.

    Hi,
    I have created a thread on JSP section of the forum for this.
    Intermittently successful JSP compilation issue
    But I am putting the link here too because the only difference between the success and failed case is the platform we are using. We are using Solaris SPARC machines.
    The compilation is a success on sun4u machine.
    But on sun4v is mostly a failure (sometimes it succeeds though strangely).
    I will be very grateful if you can go through the thread I have shared above and share some pointers on this.
    Regards

    Post Author: usaitconsultant
    CA Forum: JAVA
    Hi Ted,
    Thanks for the reply.The file is not available in the server. Though, I checked CMS and I found an instance in history tab and the status is failed with error below. 
                Error Message:
                A variable prevented the data provider Query 1 with BANRRD30 from being refreshed. (DMA0008).When I checked my codes, I found out that the object Im using is for web intelligence data provider. However, I cannot find any documentation and example for passing parameter values in desktop intelligence data provider. Any idea on this? You think this is not suported by Report Engine SDK?Thanks.    

  • [svn:fx-4.x] 14245: * Fixed inactive incremental compilation issue where library changes

    Revision: 14245
    Revision: 14245
    Author:   [email protected]
    Date:     2010-02-18 08:53:00 -0800 (Thu, 18 Feb 2010)
    Log Message:
    Fixed inactive incremental compilation issue where library changes
      were not causing application recompilation.
    QE notes: We should add a JUnit OEM API test for this scenario.
    Doc notes:
    Bugs: SDK-25513
    Reviewer: Pete F.
    Tests run: checkintests
    Is noteworthy for integration: yes, affects active incremental
                                   compilation from FB.
    Code-level description of changes:
      Modified the loadCompilationUnits() used by
      flex2.tools.oem.Application to pass the "sources" and "units" args
      down, so that the PersistenceStore can populate them.  This is
      necessary to get OEMUtil.isRecompilationNeeded() called in
      Application.recompile().
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-25513
    Modified Paths:
        flex/sdk/branches/4.x/modules/compiler/src/java/flex2/compiler/CompilerAPI.java

    Dear Pallavi,
    Very useful post!
    I am looking for similar accelerators for
    Software Inventory Accelerator
    Hardware Inventory Accelerator
    Interfaces Inventory
    Customization Assessment Accelerator
    Sizing Tool
    Which helps us to come up with the relevant Bill of Matetials for every area mentioned above, and the ones which I dont know...
    Request help on such accelerators... Any clues?
    Any reply, help is highly appreciated.
    Regards
    Manish Madhav

  • JDev compilation issue

    When I compile my project I get this error message
    Error: Exception thrown in Javac: Unknown cause
    Do you have any idea on what to look for since the error message does not help?
    JDev 11.1.1.6.0

    There was no stacktrace. So finally I recreated the project under eclipse and find out the compilation issue. The issue was merging SVN code delimiter like <<< .mine that causes the issue.

  • Dwm 5.9 Compilation issues

    Ok guys, I really need your help.
    I am currently with dwm 5.8.2 (everything's fine) and I downloaded 5.9 via ABS.
    I launched a makepkg under ~/dwm. And next, I tried to apply this patch called pertag2. diff: https://github.com/simongmzlj/dwmhacks/ … rtag2.diff
    It succeeded. Used:
    patch -p1 < pertag2.diff
    And I modified my config.h as jokerboy suggested me here: https://bbs.archlinux.org/viewtopic.php … 45#p960545
    I haven't others patches.
    But when I try to compile it, I got many errors messages.
    dwm build options:
    CFLAGS = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/include/X11 -DVERSION="5.9" -DXINERAMA
    LDFLAGS = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11 -L/usr/lib/X11 -lXinerama
    CC = cc
    CC dwm.c
    In file included from dwm.c:293:0:
    config.h:31:16: erreur: ‘tile’ undeclared here (not in a function)
    dwm.c: In function ‘buttonpress’:
    dwm.c:450:9: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:450:9: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:450:4: attention : passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default]
    /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c:450:4: attention : passing argument 1 of ‘textnw’ from incompatible pointer type [enabled by default]
    dwm.c:236:12: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c: In function ‘createmon’:
    dwm.c:686:29: erreur: request for member ‘mfact’ in something not a structure or union
    dwm.c:686:36: attention : comparaison ordonnée de pointeur avec le zéro entier [-pedantic]
    dwm.c:686:61: erreur: request for member ‘mfact’ in something not a structure or union
    dwm.c:686:48: erreur: non concordance de type dans une expression conditionnelle
    dwm.c:686:16: erreur: incompatible types when assigning to type ‘double’ from type ‘const struct Layout *’
    dwm.c:686:3: attention : statement with no effect [-Wunused-value]
    dwm.c:687:31: erreur: request for member ‘nmaster’ in something not a structure or union
    dwm.c:687:40: attention : comparaison ordonnée de pointeur avec le zéro entier [-pedantic]
    dwm.c:687:46: erreur: ‘nmaster’ undeclared (first use in this function)
    dwm.c:687:46: note: each undeclared identifier is reported only once for each function it appears in
    dwm.c:687:67: erreur: request for member ‘nmaster’ in something not a structure or union
    dwm.c:687:18: attention : assignment makes integer from pointer without a cast [enabled by default]
    dwm.c:688:26: erreur: request for member ‘layout’ in something not a structure or union
    dwm.c: In function ‘drawbar’:
    dwm.c:767:10: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:767:10: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:767:3: attention : passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default]
    /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c:767:3: attention : passing argument 1 of ‘textnw’ from incompatible pointer type [enabled by default]
    dwm.c:236:12: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c:769:19: erreur: request for member ‘name’ in something not a structure or union
    dwm.c:769:3: attention : passing argument 1 of ‘drawtext’ from incompatible pointer type [enabled by default]
    dwm.c:190:13: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
    dwm.c: Hors de toute fonction :
    dwm.c:1550:1: attention : ‘setnmaster’ defined but not used [-Wunused-function]
    dwm.c:1539:1: attention : ‘incnmaster’ defined but not used [-Wunused-function]
    dwm.c:1691:1: attention : ‘ntile’ defined but not used [-Wunused-function]
    make: *** [dwm.o] Erreur 1
    Here my config.h:
    /* See LICENSE file for copyright and license details. */
    /* appearance */
    static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
    static const char normbordercolor[] = "#cccccc";
    static const char normbgcolor[] = "#cccccc";
    static const char normfgcolor[] = "#000000";
    static const char selbordercolor[] = "#0066ff";
    static const char selbgcolor[] = "#0066ff";
    static const char selfgcolor[] = "#ffffff";
    static const unsigned int borderpx = 1; /* border pixel of windows */
    static const unsigned int snap = 32; /* snap pixel */
    static const Bool showbar = True; /* False means no bar */
    static const Bool topbar = True; /* False means bottom bar */
    static const Rule rules[] = {
    /* class instance title tags mask isfloating monitor */
    { "Gimp", NULL, NULL, 0, True, -1 },
    { "Firefox", NULL, NULL, 1 << 8, False, -1 },
    /* layout(s) */
    static const int nmaster = 1; /* clients in the master area */
    static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
    static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
    static const Layout layouts[] = {
    /* symbol arrange function */
    { "[]=", tile }, /* first entry is default */
    { "><>", NULL }, /* no layout function means floating behavior */
    { "[M]", monocle },
    { "[N]", ntile },
    /* tagging */
    static const Tag tags[] = {
    /* name layout mfact nmaster */
    { "1", &layouts[0], -1, -1 },
    { "2", &layouts[1], -1, -1 },
    { "3", &layouts[2], -1, -1 },
    { "4", &layouts[3], 0.40, -1 },
    { "5", &layouts[0], -1, -1 },
    { "6", &layouts[0], -1, -1 },
    { "7", &layouts[0], -1, -1 },
    { "8", &layouts[0], -1, -1 },
    { "9", &layouts[0], -1, -1 },
    /* key definitions */
    #define MODKEY Mod1Mask
    #define TAGKEYS(KEY,TAG) \
    { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
    { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
    /* helper for spawning shell commands in the pre dwm-5.0 fashion */
    #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
    /* commands */
    static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
    static const char *termcmd[] = { "uxterm", NULL };
    static Key keys[] = {
    /* modifier key function argument */
    { MODKEY, XK_p, spawn, {.v = dmenucmd } },
    { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
    { MODKEY, XK_b, togglebar, {0} },
    { MODKEY, XK_j, focusstack, {.i = +1 } },
    { MODKEY, XK_k, focusstack, {.i = -1 } },
    { MODKEY, XK_a, incnmaster, {.i = +1 } },
    { MODKEY, XK_z, incnmaster, {.i = -1 } },
    { MODKEY, XK_h, setmfact, {.f = -0.05} },
    { MODKEY, XK_l, setmfact, {.f = +0.05} },
    { MODKEY, XK_Return, zoom, {0} },
    { MODKEY, XK_Tab, view, {0} },
    { MODKEY|ShiftMask, XK_c, killclient, {0} },
    { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
    { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
    { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
    { MODKEY, XK_n, setlayout, {.v = &layouts[3]} },
    { MODKEY, XK_space, setlayout, {0} },
    { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
    { MODKEY, XK_0, view, {.ui = ~0 } },
    { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
    { MODKEY, XK_comma, focusmon, {.i = -1 } },
    { MODKEY, XK_period, focusmon, {.i = +1 } },
    { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
    { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
    TAGKEYS( XK_1, 0)
    TAGKEYS( XK_2, 1)
    TAGKEYS( XK_3, 2)
    TAGKEYS( XK_4, 3)
    TAGKEYS( XK_5, 4)
    TAGKEYS( XK_6, 5)
    TAGKEYS( XK_7, 6)
    TAGKEYS( XK_8, 7)
    TAGKEYS( XK_9, 8)
    { MODKEY|ShiftMask, XK_q, quit, {0} },
    /* button definitions */
    /* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
    static Button buttons[] = {
    /* click event mask button function argument */
    { ClkLtSymbol, 0, Button1, setlayout, {0} },
    { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
    { ClkWinTitle, 0, Button2, zoom, {0} },
    { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
    { ClkClientWin, MODKEY, Button1, movemouse, {0} },
    { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
    { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
    { ClkTagBar, 0, Button1, view, {0} },
    { ClkTagBar, 0, Button3, toggleview, {0} },
    { ClkTagBar, MODKEY, Button1, tag, {0} },
    { ClkTagBar, MODKEY, Button3, toggletag, {0} },
    dwm.c
    /* See LICENSE file for copyright and license details.
    * dynamic window manager is designed like any other X client as well. It is
    * driven through handling X events. In contrast to other X clients, a window
    * manager selects for SubstructureRedirectMask on the root window, to receive
    * events about window (dis-)appearance. Only one X connection at a time is
    * allowed to select for this event mask.
    * The event handlers of dwm are organized in an array which is accessed
    * whenever a new event has been fetched. This allows event dispatching
    * in O(1) time.
    * Each child of the root window is called a client, except windows which have
    * set the override_redirect flag. Clients are organized in a linked client
    * list on each monitor, the focus history is remembered through a stack list
    * on each monitor. Each client contains a bit array to indicate the tags of a
    * client.
    * Keys and tagging rules are organized as arrays and defined in config.h.
    * To understand everything else, start reading main().
    #include <errno.h>
    #include <locale.h>
    #include <stdarg.h>
    #include <signal.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <X11/cursorfont.h>
    #include <X11/keysym.h>
    #include <X11/Xatom.h>
    #include <X11/Xlib.h>
    #include <X11/Xproto.h>
    #include <X11/Xutil.h>
    #ifdef XINERAMA
    #include <X11/extensions/Xinerama.h>
    #endif /* XINERAMA */
    /* macros */
    #define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
    #define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
    #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH))
    #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
    #define LENGTH(X) (sizeof X / sizeof X[0])
    #define MAX(A, B) ((A) > (B) ? (A) : (B))
    #define MIN(A, B) ((A) < (B) ? (A) : (B))
    #define MOUSEMASK (BUTTONMASK|PointerMotionMask)
    #define WIDTH(X) ((X)->w + 2 * (X)->bw)
    #define HEIGHT(X) ((X)->h + 2 * (X)->bw)
    #define TAGMASK ((1 << LENGTH(tags)) - 1)
    #define TEXTW(X) (textnw(X, strlen(X)) + dc.font.height)
    /* enums */
    enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
    enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
    enum { NetSupported, NetWMName, NetWMState,
    NetWMFullscreen, NetActiveWindow, NetLast }; /* EWMH atoms */
    enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
    enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
    ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
    typedef union {
    int i;
    unsigned int ui;
    float f;
    const void *v;
    } Arg;
    typedef struct {
    unsigned int click;
    unsigned int mask;
    unsigned int button;
    void (*func)(const Arg *arg);
    const Arg arg;
    } Button;
    typedef struct Monitor Monitor;
    typedef struct Client Client;
    struct Client {
    char name[256];
    float mina, maxa;
    int x, y, w, h;
    int oldx, oldy, oldw, oldh;
    int basew, baseh, incw, inch, maxw, maxh, minw, minh;
    int bw, oldbw;
    unsigned int tags;
    Bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
    Client *next;
    Client *snext;
    Monitor *mon;
    Window win;
    typedef struct {
    int x, y, w, h;
    unsigned long norm[ColLast];
    unsigned long sel[ColLast];
    Drawable drawable;
    GC gc;
    struct {
    int ascent;
    int descent;
    int height;
    XFontSet set;
    XFontStruct *xfont;
    } font;
    } DC; /* draw context */
    typedef struct {
    unsigned int mod;
    KeySym keysym;
    void (*func)(const Arg *);
    const Arg arg;
    } Key;
    typedef struct {
    const char *symbol;
    void (*arrange)(Monitor *);
    } Layout;
    struct Monitor {
    char ltsymbol[16];
    int num;
    int by; /* bar geometry */
    int mx, my, mw, mh; /* screen size */
    int wx, wy, ww, wh; /* window area */
    unsigned int seltags;
    unsigned int sellt;
    unsigned int tagset[2];
    Bool showbar;
    Bool topbar;
    Client *clients;
    Client *sel;
    Client *stack;
    Monitor *next;
    Window barwin;
    const Layout *lt[2];
    int curtag;
    int prevtag;
    const Layout **lts;
    double *mfacts;
    int *nmasters;
    typedef struct {
    const char *name;
    const Layout *layout;
    float mfact;
    int nmaster;
    } Tag;
    typedef struct {
    const char *class;
    const char *instance;
    const char *title;
    unsigned int tags;
    Bool isfloating;
    int monitor;
    } Rule;
    /* function declarations */
    static void applyrules(Client *c);
    static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact);
    static void arrange(Monitor *m);
    static void arrangemon(Monitor *m);
    static void attach(Client *c);
    static void attachstack(Client *c);
    static void buttonpress(XEvent *e);
    static void checkotherwm(void);
    static void cleanup(void);
    static void cleanupmon(Monitor *mon);
    static void clearurgent(Client *c);
    static void clientmessage(XEvent *e);
    static void configure(Client *c);
    static void configurenotify(XEvent *e);
    static void configurerequest(XEvent *e);
    static Monitor *createmon(void);
    static void destroynotify(XEvent *e);
    static void detach(Client *c);
    static void detachstack(Client *c);
    static void die(const char *errstr, ...);
    static Monitor *dirtomon(int dir);
    static void drawbar(Monitor *m);
    static void drawbars(void);
    static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
    static void drawtext(const char *text, unsigned long col[ColLast], Bool invert);
    static void enternotify(XEvent *e);
    static void expose(XEvent *e);
    static void focus(Client *c);
    static void focusin(XEvent *e);
    static void focusmon(const Arg *arg);
    static void focusstack(const Arg *arg);
    static unsigned long getcolor(const char *colstr);
    static Bool getrootptr(int *x, int *y);
    static long getstate(Window w);
    static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
    static void grabbuttons(Client *c, Bool focused);
    static void grabkeys(void);
    static void initfont(const char *fontstr);
    static void keypress(XEvent *e);
    static void killclient(const Arg *arg);
    static void manage(Window w, XWindowAttributes *wa);
    static void mappingnotify(XEvent *e);
    static void maprequest(XEvent *e);
    static void monocle(Monitor *m);
    static void movemouse(const Arg *arg);
    static Client *nexttiled(Client *c);
    static void pop(Client *);
    static void propertynotify(XEvent *e);
    static Monitor *ptrtomon(int x, int y);
    static void quit(const Arg *arg);
    static void resize(Client *c, int x, int y, int w, int h, Bool interact);
    static void resizeclient(Client *c, int x, int y, int w, int h);
    static void resizemouse(const Arg *arg);
    static void restack(Monitor *m);
    static void run(void);
    static void scan(void);
    static Bool sendevent(Client *c, Atom proto);
    static void sendmon(Client *c, Monitor *m);
    static void setclientstate(Client *c, long state);
    static void setfocus(Client *c);
    static void setlayout(const Arg *arg);
    static void setmfact(const Arg *arg);
    static void setnmaster(const Arg *arg);
    static void incnmaster(const Arg *arg);
    static void setup(void);
    static void showhide(Client *c);
    static void sigchld(int unused);
    static void spawn(const Arg *arg);
    static void tag(const Arg *arg);
    static void tagmon(const Arg *arg);
    static int textnw(const char *text, unsigned int len);
    static void ntile(Monitor *);
    static void togglebar(const Arg *arg);
    static void togglefloating(const Arg *arg);
    static void toggletag(const Arg *arg);
    static void toggleview(const Arg *arg);
    static void unfocus(Client *c, Bool setfocus);
    static void unmanage(Client *c, Bool destroyed);
    static void unmapnotify(XEvent *e);
    static Bool updategeom(void);
    static void updatebarpos(Monitor *m);
    static void updatebars(void);
    static void updatenumlockmask(void);
    static void updatesizehints(Client *c);
    static void updatestatus(void);
    static void updatetitle(Client *c);
    static void updatewmhints(Client *c);
    static void view(const Arg *arg);
    static Client *wintoclient(Window w);
    static Monitor *wintomon(Window w);
    static int xerror(Display *dpy, XErrorEvent *ee);
    static int xerrordummy(Display *dpy, XErrorEvent *ee);
    static int xerrorstart(Display *dpy, XErrorEvent *ee);
    static void zoom(const Arg *arg);
    /* variables */
    static const char broken[] = "broken";
    static char stext[256];
    static int screen;
    static int sw, sh; /* X display screen geometry width, height */
    static int bh, blw = 0; /* bar geometry */
    static int (*xerrorxlib)(Display *, XErrorEvent *);
    static unsigned int numlockmask = 0;
    static void (*handler[LASTEvent]) (XEvent *) = {
    [ButtonPress] = buttonpress,
    [ClientMessage] = clientmessage,
    [ConfigureRequest] = configurerequest,
    [ConfigureNotify] = configurenotify,
    [DestroyNotify] = destroynotify,
    [EnterNotify] = enternotify,
    [Expose] = expose,
    [FocusIn] = focusin,
    [KeyPress] = keypress,
    [MappingNotify] = mappingnotify,
    [MapRequest] = maprequest,
    [PropertyNotify] = propertynotify,
    [UnmapNotify] = unmapnotify
    static Atom wmatom[WMLast], netatom[NetLast];
    static Bool running = True;
    static Cursor cursor[CurLast];
    static Display *dpy;
    static DC dc;
    static Monitor *mons = NULL, *selmon = NULL;
    static Window root;
    /* configuration, allows nested code to access above variables */
    #include "config.h"
    /* compile-time check if all tags fit into an unsigned int bit array. */
    struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
    /* function implementations */
    void
    applyrules(Client *c) {
    const char *class, *instance;
    unsigned int i;
    const Rule *r;
    Monitor *m;
    XClassHint ch = { 0 };
    /* rule matching */
    c->isfloating = c->tags = 0;
    if(XGetClassHint(dpy, c->win, &ch)) {
    class = ch.res_class ? ch.res_class : broken;
    instance = ch.res_name ? ch.res_name : broken;
    for(i = 0; i < LENGTH(rules); i++) {
    r = &rules[i];
    if((!r->title || strstr(c->name, r->title))
    && (!r->class || strstr(class, r->class))
    && (!r->instance || strstr(instance, r->instance)))
    c->isfloating = r->isfloating;
    c->tags |= r->tags;
    for(m = mons; m && m->num != r->monitor; m = m->next);
    if(m)
    c->mon = m;
    if(ch.res_class)
    XFree(ch.res_class);
    if(ch.res_name)
    XFree(ch.res_name);
    c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
    Bool
    applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
    Bool baseismin;
    Monitor *m = c->mon;
    /* set minimum possible */
    *w = MAX(1, *w);
    *h = MAX(1, *h);
    if(interact) {
    if(*x > sw)
    *x = sw - WIDTH(c);
    if(*y > sh)
    *y = sh - HEIGHT(c);
    if(*x + *w + 2 * c->bw < 0)
    *x = 0;
    if(*y + *h + 2 * c->bw < 0)
    *y = 0;
    else {
    if(*x > m->mx + m->mw)
    *x = m->mx + m->mw - WIDTH(c);
    if(*y > m->my + m->mh)
    *y = m->my + m->mh - HEIGHT(c);
    if(*x + *w + 2 * c->bw < m->mx)
    *x = m->mx;
    if(*y + *h + 2 * c->bw < m->my)
    *y = m->my;
    if(*h < bh)
    *h = bh;
    if(*w < bh)
    *w = bh;
    if(resizehints || c->isfloating) {
    /* see last two sentences in ICCCM 4.1.2.3 */
    baseismin = c->basew == c->minw && c->baseh == c->minh;
    if(!baseismin) { /* temporarily remove base dimensions */
    *w -= c->basew;
    *h -= c->baseh;
    /* adjust for aspect limits */
    if(c->mina > 0 && c->maxa > 0) {
    if(c->maxa < (float)*w / *h)
    *w = *h * c->maxa + 0.5;
    else if(c->mina < (float)*h / *w)
    *h = *w * c->mina + 0.5;
    if(baseismin) { /* increment calculation requires this */
    *w -= c->basew;
    *h -= c->baseh;
    /* adjust for increment value */
    if(c->incw)
    *w -= *w % c->incw;
    if(c->inch)
    *h -= *h % c->inch;
    /* restore base dimensions */
    *w = MAX(*w + c->basew, c->minw);
    *h = MAX(*h + c->baseh, c->minh);
    if(c->maxw)
    *w = MIN(*w, c->maxw);
    if(c->maxh)
    *h = MIN(*h, c->maxh);
    return *x != c->x || *y != c->y || *w != c->w || *h != c->h;
    void
    arrange(Monitor *m) {
    if(m)
    showhide(m->stack);
    else for(m = mons; m; m = m->next)
    showhide(m->stack);
    focus(NULL);
    if(m)
    arrangemon(m);
    else for(m = mons; m; m = m->next)
    arrangemon(m);
    void
    arrangemon(Monitor *m) {
    strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
    if(m->lt[m->sellt]->arrange)
    m->lt[m->sellt]->arrange(m);
    restack(m);
    void
    attach(Client *c) {
    c->next = c->mon->clients;
    c->mon->clients = c;
    void
    attachstack(Client *c) {
    c->snext = c->mon->stack;
    c->mon->stack = c;
    void
    buttonpress(XEvent *e) {
    unsigned int i, x, click;
    Arg arg = {0};
    Client *c;
    Monitor *m;
    XButtonPressedEvent *ev = &e->xbutton;
    click = ClkRootWin;
    /* focus monitor if necessary */
    if((m = wintomon(ev->window)) && m != selmon) {
    unfocus(selmon->sel, True);
    selmon = m;
    focus(NULL);
    if(ev->window == selmon->barwin) {
    i = x = 0;
    do {
    x += TEXTW(tags[i].name);
    } while(ev->x >= x && ++i < LENGTH(tags));
    if(i < LENGTH(tags)) {
    click = ClkTagBar;
    arg.ui = 1 << i;
    else if(ev->x < x + blw)
    click = ClkLtSymbol;
    else if(ev->x > selmon->ww - TEXTW(stext))
    click = ClkStatusText;
    else
    click = ClkWinTitle;
    else if((c = wintoclient(ev->window))) {
    focus(c);
    click = ClkClientWin;
    for(i = 0; i < LENGTH(buttons); i++)
    if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
    && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
    buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
    void
    checkotherwm(void) {
    xerrorxlib = XSetErrorHandler(xerrorstart);
    /* this causes an error if some other window manager is running */
    XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask);
    XSync(dpy, False);
    XSetErrorHandler(xerror);
    XSync(dpy, False);
    void
    cleanup(void) {
    Arg a = {.ui = ~0};
    Layout foo = { "", NULL };
    Monitor *m;
    view(&a);
    selmon->lt[selmon->sellt] = &foo;
    for(m = mons; m; m = m->next)
    while(m->stack)
    unmanage(m->stack, False);
    if(dc.font.set)
    XFreeFontSet(dpy, dc.font.set);
    else
    XFreeFont(dpy, dc.font.xfont);
    XUngrabKey(dpy, AnyKey, AnyModifier, root);
    XFreePixmap(dpy, dc.drawable);
    XFreeGC(dpy, dc.gc);
    XFreeCursor(dpy, cursor[CurNormal]);
    XFreeCursor(dpy, cursor[CurResize]);
    XFreeCursor(dpy, cursor[CurMove]);
    while(mons)
    cleanupmon(mons);
    XSync(dpy, False);
    XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
    void
    cleanupmon(Monitor *mon) {
    Monitor *m;
    if(mon == mons)
    mons = mons->next;
    else {
    for(m = mons; m && m->next != mon; m = m->next);
    m->next = mon->next;
    XUnmapWindow(dpy, mon->barwin);
    XDestroyWindow(dpy, mon->barwin);
    free(mon->mfacts);
    free(mon->nmasters);
    free(mon->lts);
    free(mon);
    void
    clearurgent(Client *c) {
    XWMHints *wmh;
    c->isurgent = False;
    if(!(wmh = XGetWMHints(dpy, c->win)))
    return;
    wmh->flags &= ~XUrgencyHint;
    XSetWMHints(dpy, c->win, wmh);
    XFree(wmh);
    void
    clientmessage(XEvent *e) {
    XClientMessageEvent *cme = &e->xclient;
    Client *c = wintoclient(cme->window);
    if(!c)
    return;
    if(cme->message_type == netatom[NetWMState] && cme->data.l[1] == netatom[NetWMFullscreen]) {
    if(cme->data.l[0] && !c->isfullscreen) {
    XChangeProperty(dpy, cme->window, netatom[NetWMState], XA_ATOM, 32,
    PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
    c->isfullscreen = True;
    c->oldstate = c->isfloating;
    c->oldbw = c->bw;
    c->bw = 0;
    c->isfloating = True;
    resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
    XRaiseWindow(dpy, c->win);
    else {
    XChangeProperty(dpy, cme->window, netatom[NetWMState], XA_ATOM, 32,
    PropModeReplace, (unsigned char*)0, 0);
    c->isfullscreen = False;
    c->isfloating = c->oldstate;
    c->bw = c->oldbw;
    c->x = c->oldx;
    c->y = c->oldy;
    c->w = c->oldw;
    c->h = c->oldh;
    resizeclient(c, c->x, c->y, c->w, c->h);
    arrange(c->mon);
    else if(cme->message_type == netatom[NetActiveWindow]) {
    if(!ISVISIBLE(c)) {
    c->mon->seltags ^= 1;
    c->mon->tagset[c->mon->seltags] = c->tags;
    pop(c);
    void
    configure(Client *c) {
    XConfigureEvent ce;
    ce.type = ConfigureNotify;
    ce.display = dpy;
    ce.event = c->win;
    ce.window = c->win;
    ce.x = c->x;
    ce.y = c->y;
    ce.width = c->w;
    ce.height = c->h;
    ce.border_width = c->bw;
    ce.above = None;
    ce.override_redirect = False;
    XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&ce);
    void
    configurenotify(XEvent *e) {
    Monitor *m;
    XConfigureEvent *ev = &e->xconfigure;
    Bool dirty;
    if(ev->window == root) {
    dirty = (sw != ev->width);
    sw = ev->width;
    sh = ev->height;
    if(updategeom() || dirty) {
    if(dc.drawable != 0)
    XFreePixmap(dpy, dc.drawable);
    dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
    updatebars();
    for(m = mons; m; m = m->next)
    XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
    arrange(NULL);
    void
    configurerequest(XEvent *e) {
    Client *c;
    Monitor *m;
    XConfigureRequestEvent *ev = &e->xconfigurerequest;
    XWindowChanges wc;
    if((c = wintoclient(ev->window))) {
    if(ev->value_mask & CWBorderWidth)
    c->bw = ev->border_width;
    else if(c->isfloating || !selmon->lt[selmon->sellt]->arrange) {
    m = c->mon;
    if(ev->value_mask & CWX)
    c->x = m->mx + ev->x;
    if(ev->value_mask & CWY)
    c->y = m->my + ev->y;
    if(ev->value_mask & CWWidth)
    c->w = ev->width;
    if(ev->value_mask & CWHeight)
    c->h = ev->height;
    if((c->x + c->w) > m->mx + m->mw && c->isfloating)
    c->x = m->mx + (m->mw / 2 - c->w / 2); /* center in x direction */
    if((c->y + c->h) > m->my + m->mh && c->isfloating)
    c->y = m->my + (m->mh / 2 - c->h / 2); /* center in y direction */
    if((ev->value_mask & (CWX|CWY)) && !(ev->value_mask & (CWWidth|CWHeight)))
    configure(c);
    if(ISVISIBLE(c))
    XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
    else
    configure(c);
    else {
    wc.x = ev->x;
    wc.y = ev->y;
    wc.width = ev->width;
    wc.height = ev->height;
    wc.border_width = ev->border_width;
    wc.sibling = ev->above;
    wc.stack_mode = ev->detail;
    XConfigureWindow(dpy, ev->window, ev->value_mask, &wc);
    XSync(dpy, False);
    /* TODO Check how many times createmon is called */
    Monitor *
    createmon(void) {
    Monitor *m;
    int i, numtags = LENGTH(tags) + 1;
    if(!(m = (Monitor *)calloc(1, sizeof(Monitor))))
    die("fatal: could not malloc() %u bytes\n", sizeof(Monitor));
    if(!(m->mfacts = calloc(sizeof(double), numtags)))
    die("fatal: could not malloc() %u bytes\n", sizeof(double) * numtags);
    if(!(m->nmasters = calloc(sizeof(int), numtags)))
    die("fatal: could not malloc() %u bytes\n", sizeof(int) * numtags);
    if(!(m->lts = calloc(sizeof(Layout *), numtags)))
    die("fatal: could not malloc() %u bytes\n", sizeof(Layout *) * numtags);
    m->tagset[0] = m->tagset[1] = 1;
    m->showbar = showbar;
    m->topbar = topbar;
    m->curtag = m->prevtag = 1;
    for(i = 1; i < numtags; i++) {
    m->mfacts[i] = tags[i - 1].mfact < 0 ? mfact : tags[i - 1].mfact;
    m->nmasters[i] = tags[i - 1].nmaster < 0 ? nmaster : tags[i - 1].nmaster;
    m->lts[i] = tags[i - 1].layout;
    m->lt[0] = m->lts[m->curtag];
    m->lt[1] = &layouts[1 % LENGTH(layouts)];
    strncpy(m->ltsymbol, m->lt[0]->symbol, sizeof m->ltsymbol);
    return m;
    void
    destroynotify(XEvent *e) {
    Client *c;
    XDestroyWindowEvent *ev = &e->xdestroywindow;
    if((c = wintoclient(ev->window)))
    unmanage(c, True);
    void
    detach(Client *c) {
    Client **tc;
    for(tc = &c->mon->clients; *tc && *tc != c; tc = &(*tc)->next);
    *tc = c->next;
    void
    detachstack(Client *c) {
    Client **tc, *t;
    for(tc = &c->mon->stack; *tc && *tc != c; tc = &(*tc)->snext);
    *tc = c->snext;
    if(c == c->mon->sel) {
    for(t = c->mon->stack; t && !ISVISIBLE(t); t = t->snext);
    c->mon->sel = t;
    void
    die(const char *errstr, ...) {
    va_list ap;
    va_start(ap, errstr);
    vfprintf(stderr, errstr, ap);
    va_end(ap);
    exit(EXIT_FAILURE);
    Monitor *
    dirtomon(int dir) {
    Monitor *m = NULL;
    if(dir > 0) {
    if(!(m = selmon->next))
    m = mons;
    else {
    if(selmon == mons)
    for(m = mons; m->next; m = m->next);
    else
    for(m = mons; m->next != selmon; m = m->next);
    return m;
    void
    drawbar(Monitor *m) {
    int x;
    unsigned int i, occ = 0, urg = 0;
    unsigned long *col;
    Client *c;
    for(c = m->clients; c; c = c->next) {
    occ |= c->tags;
    if(c->isurgent)
    urg |= c->tags;
    dc.x = 0;
    for(i = 0; i < LENGTH(tags); i++) {
    dc.w = TEXTW(tags[i].name);
    col = m->tagset[m->seltags] & 1 << i ? dc.sel : dc.norm;
    drawtext(tags[i].name, col, urg & 1 << i);
    drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
    occ & 1 << i, urg & 1 << i, col);
    dc.x += dc.w;
    dc.w = blw = TEXTW(m->ltsymbol);
    drawtext(m->ltsymbol, dc.norm, False);
    dc.x += dc.w;
    x = dc.x;
    if(m == selmon) { /* status is only drawn on selected monitor */
    dc.w = TEXTW(stext);
    dc.x = m->ww - dc.w;
    if(dc.x < x) {
    dc.x = x;
    dc.w = m->ww - x;
    drawtext(stext, dc.norm, False);
    else
    dc.x = m->ww;
    if((dc.w = dc.x - x) > bh) {
    dc.x = x;
    if(m->sel) {
    col = m == selmon ? dc.sel : dc.norm;
    drawtext(m->sel->name, col, False);
    drawsquare(m->sel->isfixed, m->sel->isfloating, False, col);
    else
    drawtext(NULL, dc.norm, False);
    XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0);
    XSync(dpy, False);
    void
    drawbars(void) {
    Monitor *m;
    for(m = mons; m; m = m->next)
    drawbar(m);
    void
    drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
    int x;
    XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
    x = (dc.font.ascent + dc.font.descent + 2) / 4;
    if(filled)
    XFillRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x+1, x+1);
    else if(empty)
    XDrawRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x, x);
    void
    drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
    char buf[256];
    int i, x, y, h, len, olen;
    XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
    XFillRectangle(dpy, dc.drawable, dc.gc, dc.x, dc.y, dc.w, dc.h);
    if(!text)
    return;
    olen = strlen(text);
    h = dc.font.ascent + dc.font.descent;
    y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
    x = dc.x + (h / 2);
    /* shorten text if necessary */
    for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--);
    if(!len)
    return;
    memcpy(buf, text, len);
    if(len < olen)
    for(i = len; i && i > len - 3; buf[--i] = '.');
    XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
    if(dc.font.set)
    XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
    else
    XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
    void
    enternotify(XEvent *e) {
    Client *c;
    Monitor *m;
    XCrossingEvent *ev = &e->xcrossing;
    if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
    return;
    c = wintoclient(ev->window);
    m = c ? c->mon : wintomon(ev->window);
    if(m != selmon) {
    unfocus(selmon->sel, True);
    selmon = m;
    else if(!c || c == selmon->sel)
    return;
    focus(c);
    void
    expose(XEvent *e) {
    Monitor *m;
    XExposeEvent *ev = &e->xexpose;
    if(ev->count == 0 && (m = wintomon(ev->window)))
    drawbar(m);
    void
    focus(Client *c) {
    if(!c || !ISVISIBLE(c))
    for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
    /* was if(selmon->sel) */
    if(selmon->sel && selmon->sel != c)
    unfocus(selmon->sel, False);
    if(c) {
    if(c->mon != selmon)
    selmon = c->mon;
    if(c->isurgent)
    clearurgent(c);
    detachstack(c);
    attachstack(c);
    grabbuttons(c, True);
    XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
    setfocus(c);
    else
    XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
    selmon->sel = c;
    drawbars();
    void
    focusin(XEvent *e) { /* there are some broken focus acquiring clients */
    XFocusChangeEvent *ev = &e->xfocus;
    if(selmon->sel && ev->window != selmon->sel->win)
    setfocus(selmon->sel);
    void
    focusmon(const Arg *arg) {
    Monitor *m;
    if(!mons->next)
    return;
    if((m = dirtomon(arg->i)) == selmon)
    return;
    unfocus(selmon->sel, True);
    selmon = m;
    focus(NULL);
    void
    focusstack(const Arg *arg) {
    Client *c = NULL, *i;
    if(!selmon->sel)
    return;
    if(arg->i > 0) {
    for(c = selmon->sel->next; c && !ISVISIBLE(c); c = c->next);
    if(!c)
    for(c = selmon->clients; c && !ISVISIBLE(c); c = c->next);
    else {
    for(i = selmon->clients; i != selmon->sel; i = i->next)
    if(ISVISIBLE(i))
    c = i;
    if(!c)
    for(; i; i = i->next)
    if(ISVISIBLE(i))
    c = i;
    if(c) {
    focus(c);
    restack(selmon);
    unsigned long
    getcolor(const char *colstr) {
    Colormap cmap = DefaultColormap(dpy, screen);
    XColor color;
    if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color))
    die("error, cannot allocate color '%s'\n", colstr);
    return color.pixel;
    Bool
    getrootptr(int *x, int *y) {
    int di;
    unsigned int dui;
    Window dummy;
    return XQueryPointer(dpy, root, &dummy, &dummy, x, y, &di, &di, &dui);
    long
    getstate(Window w) {
    int format;
    long result = -1;
    unsigned char *p = NULL;
    unsigned long n, extra;
    Atom real;
    if(XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
    &real, &format, &n, &extra, (unsigned char **)&p) != Success)
    return -1;
    if(n != 0)
    result = *p;
    XFree(p);
    return result;
    Bool
    gettextprop(Window w, Atom atom, char *text, unsigned int size) {
    char **list = NULL;
    int n;
    XTextProperty name;
    if(!text || size == 0)
    return False;
    text[0] = '\0';
    XGetTextProperty(dpy, w, &name, atom);
    if(!name.nitems)
    return False;
    if(name.encoding == XA_STRING)
    strncpy(text, (char *)name.value, size - 1);
    else {
    if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success && n > 0 && *list) {
    strncpy(text, *list, size - 1);
    XFreeStringList(list);
    text[size - 1] = '\0';
    XFree(name.value);
    return True;
    void
    grabbuttons(Client *c, Bool focused) {
    updatenumlockmask();
    unsigned int i, j;
    unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
    XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
    if(focused) {
    for(i = 0; i < LENGTH(buttons); i++)
    if(buttons[i].click == ClkClientWin)
    for(j = 0; j < LENGTH(modifiers); j++)
    XGrabButton(dpy, buttons[i].button,
    buttons[i].mask | modifiers[j],
    c->win, False, BUTTONMASK,
    GrabModeAsync, GrabModeSync, None, None);
    else
    XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
    BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
    void
    grabkeys(void) {
    updatenumlockmask();
    unsigned int i, j;
    unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
    KeyCode code;
    XUngrabKey(dpy, AnyKey, AnyModifier, root);
    for(i = 0; i < LENGTH(keys); i++) {
    if((code = XKeysymToKeycode(dpy, keys[i].keysym)))
    for(j = 0; j < LENGTH(modifiers); j++)
    XGrabKey(dpy, code, keys[i].mod | modifiers[j], root,
    True, GrabModeAsync, GrabModeAsync);
    void
    initfont(const char *fontstr) {
    char *def, **missing;
    int n;
    missing = NULL;
    dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
    if(missing) {
    while(n--)
    fprintf(stderr, "dwm: missing fontset: %s\n", missing[n]);
    XFreeStringList(missing);
    if(dc.font.set) {
    XFontStruct **xfonts;
    char **font_names;
    dc.font.ascent = dc.font.descent = 0;
    XExtentsOfFontSet(dc.font.set);
    n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names);
    while(n--) {
    dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent);
    dc.font.descent = MAX(dc.font.descent,(*xfonts)->descent);
    xfonts++;
    else {
    if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
    && !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
    die("error, cannot load font: '%s'\n", fontstr);
    dc.font.ascent = dc.font.xfont->ascent;
    dc.font.descent = dc.font.xfont->descent;
    dc.font.height = dc.font.ascent + dc.font.descent;
    #ifdef XINERAMA
    static Bool
    isuniquegeom(XineramaScreenInfo *unique, size_t n, XineramaScreenInfo *info) {
    while(n--)
    if(unique[n].x_org == info->x_org && unique[n].y_org == info->y_org
    && unique[n].width == info->width && unique[n].height == info->height)
    return False;
    return True;
    #endif /* XINERAMA */
    void
    keypress(XEvent *e) {
    unsigned int i;
    KeySym keysym;
    XKeyEvent *ev;
    ev = &e->xkey;
    keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
    for(i = 0; i < LENGTH(keys); i++)
    if(keysym == keys[i].keysym
    && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
    && keys[i].func)
    keys[i].func(&(keys[i].arg));
    void
    killclient(const Arg *arg) {
    if(!selmon->sel)
    return;
    if(!sendevent(selmon->sel, wmatom[WMDelete])) {
    XGrabServer(dpy);
    XSetErrorHandler(xerrordummy);
    XSetCloseDownMode(dpy, DestroyAll);
    XKillClient(dpy, selmon->sel->win);
    XSync(dpy, False);
    XSetErrorHandler(xerror);
    XUngrabServer(dpy);
    void
    manage(Window w, XWindowAttributes *wa) {
    Client *c, *t = NULL;
    Window trans = None;
    XWindowChanges wc;
    if(!(c = calloc(1, sizeof(Client))))
    die("fatal: could not malloc() %u bytes\n", sizeof(Client));
    c->win = w;
    updatetitle(c);
    if(XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
    c->mon = t->mon;
    c->tags = t->tags;
    else {
    c->mon = selmon;
    applyrules(c);
    /* geometry */
    c->x = c->oldx = wa->x;
    c->y = c->oldy = wa->y;
    c->w = c->oldw = wa->width;
    c->h = c->oldh = wa->height;
    c->oldbw = wa->border_width;
    if(c->w == c->mon->mw && c->h == c->mon->mh) {
    c->isfloating = True;
    c->x = c->mon->mx;
    c->y = c->mon->my;
    c->bw = 0;
    else {
    if(c->x + WIDTH(c) > c->mon->mx + c->mon->mw)
    c->x = c->mon->mx + c->mon->mw - WIDTH(c);
    if(c->y + HEIGHT(c) > c->mon->my + c->mon->mh)
    c->y = c->mon->my + c->mon->mh - HEIGHT(c);
    c->x = MAX(c->x, c->mon->mx);
    /* only fix client y-offset, if the client center might cover the bar */
    c->y = MAX(c->y, ((c->mon->by == 0) && (c->x + (c->w / 2) >= c->mon->wx)
    && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
    c->bw = borderpx;
    wc.border_width = c->bw;
    XConfigureWindow(dpy, w, CWBorderWidth, &wc);
    XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
    configure(c); /* propagates border_width, if size doesn't change */
    updatesizehints(c);
    updatewmhints(c);
    XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
    grabbuttons(c, False);
    if(!c->isfloating)
    c->isfloating = c->oldstate = trans != None || c->isfixed;
    if(c->isfloating)
    XRaiseWindow(dpy, c->win);
    attach(c);
    attachstack(c);
    XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
    XMapWindow(dpy, c->win);
    setclientstate(c, NormalState);
    arrange(c->mon);
    void
    mappingnotify(XEvent *e) {
    XMappingEvent *ev = &e->xmapping;
    XRefreshKeyboardMapping(ev);
    if(ev->request == MappingKeyboard)
    grabkeys();
    void
    maprequest(XEvent *e) {
    static XWindowAttributes wa;
    XMapRequestEvent *ev = &e->xmaprequest;
    if(!XGetWindowAttributes(dpy, ev->window, &wa))
    return;
    if(wa.override_redirect)
    return;
    if(!wintoclient(ev->window))
    manage(ev->window, &wa);
    void
    monocle(Monitor *m) {
    unsigned int n = 0;
    Client *c;
    for(c = m->clients; c; c = c->next)
    if(ISVISIBLE(c))
    n++;
    if(n > 0) /* override layout symbol */
    snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
    for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
    resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
    void
    movemouse(const Arg *arg) {
    int x, y, ocx, ocy, nx, ny;
    Client *c;
    Monitor *m;
    XEvent ev;
    if(!(c = selmon->sel))
    return;
    restack(selmon);
    ocx = c->x;
    ocy = c->y;
    if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
    None, cursor[CurMove], CurrentTime) != GrabSuccess)
    return;
    if(!getrootptr(&x, &y))
    return;
    do {
    XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
    switch(ev.type) {
    case ConfigureRequest:
    case Expose:
    case MapRequest:
    handler[ev.type](&ev);
    break;
    case MotionNotify:
    nx = ocx + (ev.xmotion.x - x);
    ny = ocy + (ev.xmotion.y - y);
    if(nx >= selmon->wx && nx <= selmon->wx + selmon->ww
    && ny >= selmon->wy && ny <= selmon->wy + selmon->wh) {
    if(abs(selmon->wx - nx) < snap)
    nx = selmon->wx;
    else if(abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
    nx = selmon->wx + selmon->ww - WIDTH(c);
    if(abs(selmon->wy - ny) < snap)
    ny = selmon->wy;
    else if(abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
    ny = selmon->wy + selmon->wh - HEIGHT(c);
    if(!c->isfloating && selmon->lt[selmon->sellt]->arrange
    && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
    togglefloating(NULL);
    if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
    resize(c, nx, ny, c->w, c->h, True);
    break;
    } while(ev.type != ButtonRelease);
    XUngrabPointer(dpy, CurrentTime);
    if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
    sendmon(c, m);
    selmon = m;
    focus(NULL);
    Client *
    nexttiled(Client *c) {
    for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
    return c;
    void
    pop(Client *c) {
    detach(c);
    attach(c);
    focus(c);
    arrange(c->mon);
    void
    propertynotify(XEvent *e) {
    Client *c;
    Window trans;
    XPropertyEvent *ev = &e->xproperty;
    if((ev->window == root) && (ev->atom == XA_WM_NAME))
    updatestatus();
    else if(ev->state == PropertyDelete)
    return; /* ignore */
    else if((c = wintoclient(ev->window))) {
    switch(ev->atom) {
    default: break;
    case XA_WM_TRANSIENT_FOR:
    if(!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
    (c->isfloating = (wintoclient(trans)) != NULL))
    arrange(c->mon);
    break;
    case XA_WM_NORMAL_HINTS:
    updatesizehints(c);
    break;
    case XA_WM_HINTS:
    updatewmhints(c);
    drawbars();
    break;
    if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
    updatetitle(c);
    if(c == c->mon->sel)
    drawbar(c->mon);
    Monitor *
    ptrtomon(int x, int y) {
    Monitor *m;
    for(m = mons; m; m = m->next)
    if(INRECT(x, y, m->wx, m->wy, m->ww, m->wh))
    return m;
    return selmon;
    void
    quit(const Arg *arg) {
    running = False;
    void
    resize(Client *c, int x, int y, int w, int h, Bool interact) {
    if(applysizehints(c, &x, &y, &w, &h, interact))
    resizeclient(c, x, y, w, h);
    void
    resizeclient(Client *c, int x, int y, int w, int h) {
    XWindowChanges wc;
    c->oldx = c->x; c->x = wc.x = x;
    c->oldy = c->y; c->y = wc.y = y;
    c->oldw = c->w; c->w = wc.width = w;
    c->oldh = c->h; c->h = wc.height = h;
    wc.border_width = c->bw;
    XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
    configure(c);
    XSync(dpy, False);
    void
    resizemouse(const Arg *arg) {
    int ocx, ocy;
    int nw, nh;
    Client *c;
    Monitor *m;
    XEvent ev;
    if(!(c = selmon->sel))
    return;
    restack(selmon);
    ocx = c->x;
    ocy = c->y;
    if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
    None, cursor[CurResize], CurrentTime) != GrabSuccess)
    return;
    XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
    do {
    XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
    switch(ev.type) {
    case ConfigureRequest:
    case Expose:
    case MapRequest:
    handler[ev.type](&ev);
    break;
    case MotionNotify:
    nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
    nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);
    if(c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
    && c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
    if(!c->isfloating && selmon->lt[selmon->sellt]->arrange
    && (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
    togglefloating(NULL);
    if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
    resize(c, c->x, c->y, nw, nh, True);
    break;
    } while(ev.type != ButtonRelease);
    XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
    XUngrabPointer(dpy, CurrentTime);
    while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
    sendmon(c, m);
    selmon = m;
    focus(NULL);
    void
    restack(Monitor *m) {
    Client *c;
    XEvent ev;
    XWindowChanges wc;
    drawbar(m);
    if(!m->sel)
    return;
    if(m->sel->isfloating || !m->lt[m->sellt]->arrange)
    XRaiseWindow(dpy, m->sel->win);
    if(m->lt[m->sellt]->arrange) {
    wc.stack_mode = Below;
    wc.sibling = m->barwin;
    for(c = m->stack; c; c = c->snext)
    if(!c->isfloating && ISVISIBLE(c)) {
    XConfigureWindow(dpy, c->win, CWSibling|CWStackMode, &wc);
    wc.sibling = c->win;
    XSync(dpy, False);
    while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
    void
    run(void) {
    XEvent ev;
    /* main event loop */
    XSync(dpy, False);
    while(running && !XNextEvent(dpy, &ev)) {
    if(handler[ev.type])
    handler[ev.type](&ev); /* call handler */
    void
    scan(void) {
    unsigned int i, num;
    Window d1, d2, *wins = NULL;
    XWindowAttributes wa;
    if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
    for(i = 0; i < num; i++) {
    if(!XGetWindowAttributes(dpy, wins[i], &wa)
    || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
    continue;
    if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState)
    manage(wins[i], &wa);
    for(i = 0; i < num; i++) { /* now the transients */
    if(!XGetWindowAttributes(dpy, wins[i], &wa))
    continue;
    if(XGetTransientForHint(dpy, wins[i], &d1)
    && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
    manage(wins[i], &wa);
    if(wins)
    XFree(wins);
    void
    sendmon(Client *c, Monitor *m) {
    if(c->mon == m)
    return;
    unfocus(c, True);
    detach(c);
    detachstack(c);
    c->mon = m;
    c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
    attach(c);
    attachstack(c);
    focus(NULL);
    arrange(NULL);
    void
    setclientstate(Client *c, long state) {
    long data[] = { state, None };
    XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32,
    PropModeReplace, (unsigned char *)data, 2);
    Bool
    sendevent(Client *c, Atom proto) {
    int n;
    Atom *protocols;
    Bool exists = False;
    XEvent ev;
    if(XGetWMProtocols(dpy, c->win, &protocols, &n)) {
    while(!exists && n--)
    exists = protocols[n] == proto;
    XFree(protocols);
    if(exists) {
    ev.type = ClientMessage;
    ev.xclient.window = c->win;
    ev.xclient.message_type = wmatom[WMProtocols];
    ev.xclient.format = 32;
    ev.xclient.data.l[0] = proto;
    ev.xclient.data.l[1] = CurrentTime;
    XSendEvent(dpy, c->win, False, NoEventMask, &ev);
    return exists;
    void
    setfocus(Client *c) {
    if(!c->neverfocus)
    XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
    sendevent(c, wmatom[WMTakeFocus]);
    void
    setlayout(const Arg *arg) {
    if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
    selmon->sellt ^= 1;
    if(arg && arg->v)
    selmon->lt[selmon->sellt] = selmon->lts[selmon->curtag] = (Layout *)arg->v;
    strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
    if(selmon->sel)
    arrange(selmon);
    else
    drawbar(selmon);
    static void
    incnmaster(const Arg *arg) {
    int i;
    if(!arg || !selmon->lt[selmon->sellt]->arrange)
    return;
    i = selmon->nmasters[selmon->curtag] + arg->i;
    selmon->nmasters[selmon->curtag] = i < 0 ? 0 : i;
    arrange(selmon);
    static void
    setnmaster(const Arg *arg) {
    if(!arg || !selmon->lt[selmon->sellt]->arrange)
    return;
    selmon->nmasters[selmon->curtag] = arg->i > 0 ? arg->i : 0;
    arrange(selmon);
    /* arg > 1.0 will set mfact absolutly */
    void
    setmfact(const Arg *arg) {
    float f;
    if(!arg || !selmon->lt[selmon->sellt]->arrange)
    return;
    f = arg->f < 1.0 ? arg->f + selmon->mfacts[selmon->curtag] : arg->f - 1.0;
    if(f < 0.1 || f > 0.9)
    return;
    selmon->mfacts[selmon->curtag] = f;
    arrange(selmon);
    void
    setup(void) {
    XSetWindowAttributes wa;
    /* clean up any zombies immediately */
    sigchld(0);
    /* init screen */
    screen = DefaultScreen(dpy);
    root = RootWindow(dpy, screen);
    initfont(font);
    sw = DisplayWidth(dpy, screen);
    sh = DisplayHeight(dpy, screen);
    bh = dc.h = dc.font.height + 2;
    updategeom();
    /* init atoms */
    wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
    wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
    wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
    wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False);
    netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
    netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
    netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
    netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
    netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
    /* init cursors */
    cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
    cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
    cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
    /* init appearance */
    dc.norm[ColBorder] = getcolor(normbordercolor);
    dc.norm[ColBG] = getcolor(normbgcolor);
    dc.norm[ColFG] = getcolor(normfgcolor);
    dc.sel[ColBorder] = getcolor(selbordercolor);
    dc.sel[ColBG] = getcolor(selbgcolor);
    dc.sel[ColFG] = getcolor(selfgcolor);
    dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen));
    dc.gc = XCreateGC(dpy, root, 0, NULL);
    XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
    if(!dc.font.set)
    XSetFont(dpy, dc.gc, dc.font.xfont->fid);
    /* init bars */
    updatebars();
    updatestatus();
    /* EWMH support per view */
    XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
    PropModeReplace, (unsigned char *) netatom, NetLast);
    /* select for events */
    wa.cursor = cursor[CurNormal];
    wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask
    |EnterWindowMask|LeaveWindowMask|StructureNotifyMask
    |PropertyChangeMask;
    XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
    XSelectInput(dpy, root, wa.event_mask);
    grabkeys();
    void
    showhide(Client *c) {
    if(!c)
    return;
    if(ISVISIBLE(c)) { /* show clients top down */
    XMoveWindow(dpy, c->win, c->x, c->y);
    if((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
    resize(c, c->x, c->y, c->w, c->h, False);
    showhide(c->snext);
    else { /* hide clients bottom up */
    showhide(c->snext);
    XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
    void
    sigchld(int unused) {
    if(signal(SIGCHLD, sigchld) == SIG_ERR)
    die("Can't install SIGCHLD handler");
    while(0 < waitpid(-1, NULL, WNOHANG));
    void
    spawn(const Arg *arg) {
    if(fork() == 0) {
    if(dpy)
    close(ConnectionNumber(dpy));
    setsid();
    execvp(((char **)arg->v)[0], (char **)arg->v);
    fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]);
    perror(" failed");
    exit(EXIT_SUCCESS);
    void
    tag(const Arg *arg) {
    if(selmon->sel && arg->ui & TAGMASK) {
    selmon->sel->tags = arg->ui & TAGMASK;
    arrange(selmon);
    void
    tagmon(const Arg *arg) {
    if(!selmon->sel || !mons->next)
    return;
    sendmon(selmon->sel, dirtomon(arg->i));
    int
    textnw(const char *text, unsigned int len) {
    XRectangle r;
    if(dc.font.set) {
    XmbTextExtents(dc.font.set, text, len, NULL, &r);
    return r.width;
    return XTextWidth(dc.font.xfont, text, len);
    void
    ntile(Monitor *m) {
    int x, y, h, w, mw, nmax, nm;
    unsigned int i, n;
    Client *c;
    snprintf(m->ltsymbol, sizeof m->ltsymbol, "=%d]", m->nmasters[m->curtag]);
    for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
    c = nexttiled(m->clients);
    nmax = m->nmasters[m->curtag];
    nm = nmax == 1 ? 1 : MIN(n / 2, nmax);
    if(nm > n)
    nm = n;
    /* master */
    if(nm > 0) {
    mw = selmon->mfacts[selmon->curtag] * m->ww;
    h = m->wh / nm;
    if(h < bh)
    h = m->wh;
    y = m->wy;
    for(i = 0; i < nm; i++, c = nexttiled(c->next)) {
    resize(c, m->wx, y, (n == nm ? m->ww : mw) - 2 * c->bw,
    ((i + 1 == nm) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
    if(h != m->wh)
    y = c->y + HEIGHT(c);
    n -= nm;
    } else
    mw = 0;
    if(n == 0)
    return;
    /* tile stack */
    x = m->wx + mw;
    y = m->wy;
    w = m->ww - mw;
    h = m->wh / n;
    if(h < bh)
    h = m->wh;
    for(i = 0; c; c = nexttiled(c->next), i++) {
    resize(c, x, y, w - 2 * c->bw,
    ((i + 1 == n) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
    if(h != m->wh)
    y = c->y + HEIGHT(c);
    void
    togglebar(const Arg *arg) {
    selmon->showbar = !selmon->showbar;
    updatebarpos(selmon);
    XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh);
    arrange(selmon);
    void
    togglefloating(const Arg *arg) {
    if(!selmon->sel)
    return;
    selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
    if(selmon->sel->isfloating)
    resize(selmon->sel, selmon->sel->x, selmon->sel->y,
    selmon->sel->w, selmon->sel->h, False);
    arrange(selmon);
    void
    toggletag(const Arg *arg) {
    unsigned int newtags;
    unsigned int i;
    if(!selmon->sel)
    return;
    newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
    if(newtags) {
    selmon->sel->tags = newtags;
    if(newtags == ~0) {
    selmon->prevtag = selmon->curtag;
    selmon->curtag = 0;
    if(!(newtags & 1 << (selmon->curtag - 1))) {
    selmon->prevtag = selmon->curtag;
    for (i=0; !(newtags & 1 << i); i++);
    selmon->curtag = i + 1;
    selmon->sel->tags = newtags;
    selmon->lt[selmon->sellt] = selmon->lts[selmon->curtag];
    arrange(selmon);
    void
    toggleview(const Arg *arg) {
    unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK);
    if(newtagset) {
    selmon->tagset[selmon->seltags] = newtagset;
    arrange(selmon);
    void
    unfocus(Client *c, Bool setfocus) {
    if(!c)
    return;
    grabbuttons(c, False);
    XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
    if(setfocus)
    XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
    void
    unmanage(Client *c, Bool destroyed) {
    Monitor *m = c->mon;
    XWindowChanges wc;
    /* The server grab construct avoids race conditions. */
    detach(c);
    detachstack(c);
    if(!destroyed) {
    wc.border_width = c->oldbw;
    XGrabServer(dpy);
    XSetErrorHandler(xerrordummy);
    XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
    XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
    setclientstate(c, WithdrawnState);
    XSync(dpy, False);
    XSetErrorHandler(xerror);
    XUngrabServer(dpy);
    free(c);
    focus(NULL);
    arrange(m);
    void
    unmapnotify(XEvent *e) {
    Client *c;
    XUnmapEvent *ev = &e->xunmap;
    if((c = wintoclient(ev->window)))
    unmanage(c, False);
    void
    updatebars(void) {
    Monitor *m;
    XSetWindowAttributes wa = {
    .override_redirect = True,
    .background_pixmap = ParentRelative,
    .event_mask = ButtonPressMask|ExposureMask
    for(m = mons; m; m = m->next) {
    m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen),
    CopyFromParent, DefaultVisual(dpy, screen),
    CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa);
    XDefineCursor(dpy, m->barwin, cursor[CurNormal]);
    XMapRaised(dpy, m->barwin);
    void
    updatebarpos(Monitor *m) {
    m->wy = m->my;
    m->wh = m->mh;
    if(m->showbar) {
    m->wh -= bh;
    m->by = m->topbar ? m->wy : m->wy + m->wh;
    m->wy = m->topbar ? m->wy + bh : m->wy;
    else
    m->by = -bh;
    Bool
    updategeom(void) {
    Bool dirty = False;
    #ifdef XINERAMA
    if(XineramaIsActive(dpy)) {
    int i, j, n, nn;
    Client *c;
    Monitor *m;
    XineramaScreenInfo *info = XineramaQueryScreens(dpy, &nn);
    XineramaScreenInfo *unique = NULL;
    for(n = 0, m = mons; m; m = m->next, n++);
    /* only consider unique geometries as separate screens */
    if(!(unique = (XineramaScreenInfo *)malloc(sizeof(XineramaScreenInfo) * nn)))
    die("fatal: could not malloc() %u bytes\n", sizeof(XineramaScreenInfo) * nn);
    for(i = 0, j = 0; i < nn; i++)
    if(isuniquegeom(unique, j, &info[i]))
    memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo));
    XFree(info);
    nn = j;
    if(n <= nn) {
    for(i = 0; i < (nn - n); i++) { /* new monitors available */
    for(m = mons; m && m->next; m = m->next);
    if(m)
    m->next = createmon();
    else
    mons = createmon();
    for(i = 0, m = mons; i < nn && m; m = m->next, i++)
    if(i >= n
    || (unique[i].x_org != m->mx || unique[i].y_org != m->my
    || unique[i].width != m->mw || unique[i].height != m->mh))
    dirty = True;
    m->num = i;
    m->mx = m->wx = unique[i].x_org;
    m->my = m->wy = unique[i].y_org;
    m->mw = m->ww = unique[i].width;
    m->mh = m->wh = unique[i].height;
    updatebarpos(m);
    else { /* less monitors available nn < n */
    for(i = nn; i < n; i++) {
    for(m = mons; m && m->next; m = m->next);
    while(m->clients) {
    dirty = True;
    c = m->clients;
    m->clients = c->next;
    detachstack(c);
    c->mon = mons;
    attach(c);
    attachstack(c);
    if(m == selmon)
    selmon = mons;
    cleanupmon(m);
    free(unique);
    else
    #endif /* XINERAMA */
    /* default monitor setup */
    if(!mons)
    mons = createmon();
    if(mons->mw != sw || mons->mh != sh) {
    dirty = True;
    mons->mw = mons->ww = sw;
    mons->mh = mons->wh = sh;
    updatebarpos(mons);
    if(dirty) {
    selmon = mons;
    selmon = wintomon(root);
    return dirty;
    void
    updatenumlockmask(void) {
    unsigned int i, j;
    XModifierKeymap *modmap;
    numlockmask = 0;
    modmap = XGetModifierMapping(dpy);
    for(i = 0; i < 8; i++)
    for(j = 0; j < modmap->max_keypermod; j++)
    if(modmap->modifiermap[i * modmap->max_keypermod + j]
    == XKeysymToKeycode(dpy, XK_Num_Lock))
    numlockmask = (1 << i);
    XFreeModifiermap(modmap);
    void
    updatesizehints(Client *c) {
    long msize;
    XSizeHints size;
    if(!XGetWMNormalHints(dpy, c->win, &size, &msize))
    /* size is uninitialized, ensure that size.flags aren't used */
    size.flags = PSize;
    if(size.flags & PBaseSize) {
    c->basew = size.base_width;
    c->baseh = size.base_height;
    else if(size.flags & PMinSize) {
    c->basew = size.min_width;
    c->baseh = size.min_height;
    else
    c->basew = c->baseh = 0;
    if(size.flags & PResizeInc) {
    c->incw = size.width_inc;
    c->inch = size.height_inc;
    else
    c->incw = c->inch = 0;
    if(size.flags & PMaxSize) {
    c->maxw = size

    The diff you use rename tile() to ntile(), you should not have tile in your config.h. The rest of errors probably relate to what the diff has nerfed, or should be gone once you fix that tile.
    I think you should stay on 5.8.2 until all the patches have support for 5.9 if you can't patch on patch on your own.
    (edit) that github repo has issues, it might be good idea to create issue if that patch really have compatible issue with 5.9. That would benefit all other patch users.
    Last edited by livibetter (2011-09-12 14:55:00)

  • Coding Question Because of Compiling Issues

    Hi there, I need help with some code, here it is.
    import java.util.*;
    import java.text.*;
    public class InvestCalc {
         //declaration of instance variables
         private double interest, principal;
         //default constructor, sets interest and principal to zero
         public InvestCalc() {
              interest = 0.0;
              principal = 0.0;
         //overloaded constructor
         public InvestCalc( double startInterest, double startPrincipal) {
              interest = startInterest;
              principal = startPrincipal;
         //accessor methods for instance variables
         public double getRate() {
              return interest;
         public double getPrincipal() {
              return principal;
         //mutator methods
         public void setRate(double newInterest) {
              interest = newInterest;
         public void setPrincipal(double newPrincipal) {
              principal = newPrincipal;
         //String toString() method
         public String toString() {
              return "Interest Rate: " + percent.format(interest) + ", Principal: " + DOLLAR_FORMAT.format(principal);     
         //futureValue(int year) method
         public double futureValue(int year) {
              double futureValue = Math.pow((1 + interest), year)*principal;
              return futureValue;
         //public static final class variables
         public static final int shortTerm = 5;
         public static final int middleTerm = 10;
         public static final int longTerm = 20;
         //public void display Table() method
         public void displayTable() {
              System.out.println("Year" + "\t" + "Interest Rate" + "\t\t" + "Principal" + "\t\t" + "Future Value");
              System.out.println(shortTerm + "\t" + percent.format(interest) + "\t\t\t" + DOLLAR_FORMAT.format(principal) + "\t\t" + DOLLAR_FORMAT.format(futureValue(shortTerm)));
              System.out.println(middleTerm + "\t" + percent.format(interest) + "\t\t\t" + DOLLAR_FORMAT.format(principal) + "\t\t" + DOLLAR_FORMAT.format(futureValue(middleTerm)));
              System.out.println(longTerm + "\t" + percent.format(interest) + "\t\t\t" + DOLLAR_FORMAT.format(principal) + "\t\t" + DOLLAR_FORMAT.format(futureValue(longTerm)));
         //formatting section
         public static final NumberFormat DOLLAR_FORMAT = NumberFormat.getCurrencyInstance();
         public static final DecimalFormat percent = new DecimalFormat("##0.00%");
    import java.util.*;
    public class InvestCalcApp {
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              //declare Scanner class and interest, principal vars
              Scanner input = new Scanner(System.in);          
              double interest, principal;     //vars for the interest rate and initial investment
              //instantiate a default object of the InvestCalc class
              InvestCalc value1 = new InvestCalc();
              System.out.println("Default InvestCalc Object");
              System.out.println(value1.toString()+ "\n");
              //query for interest and principal
              System.out.print("Enter an interest rate in decimal format: ");
              interest = input.nextDouble();
              System.out.print("Enter the initial investment value: ");
              principal = input.nextDouble();
              //change object and output
              value1.setRate(interest);
              value1.setPrincipal(principal);
              System.out.println("Updated InvestCalc Object");
              System.out.println(value1.toString());
              //test the futureValue method and the DOLLAR_FORMAT static class variable
              System.out.println("Value after 1 year " + InvestCalc.DOLLAR_FORMAT.format(value1.futureValue(1)) + "\n");     
              value1.displayTable();     
              //query for another interest and principal
              System.out.print("Enter another interest rate in decimal format: ");
              interest = input.nextDouble();
              System.out.print("Enter another initial investment value: ");
              principal = input.nextDouble();
              //instantiate an object of the InvestCalc class
              InvestCalc value2 = new InvestCalc(interest, principal);
              System.out.println("Non-Default InvestCalc Object");
              System.out.println(value2.toString()+ "\n");
              value2.displayTable();
    }When I compile InvestCalc.java it compiles; however, when I compile InvestCalcApp.java I receive 5 errors:
    InvestCalcApp.java:15: cannot find symbol
    symbol : class InvestCalc
    location: class InvestCalcApp
                     InvestCalc value1 = new InvestCalc();
    InvestCalcApp.java:15: cannot find symbol
    symbol : class InvestCalc
    location: class InvestCalcApp
                     InvestCalc value1 = new InvestCalc();
    InvestCalcApp.java:32: package InvestCalc does not exist
                                  System.out.println("Value after 1 year " + InvestCalc.DOLLAR_FORMAT.format(value1.futureValue(1)) + "\n");
    InvestCalcApp.java:42: cannot find symbol
    symbol : class InvestCalc
    location: class InvestCalcApp
                     InvestCalc value2 = new InvestCalc(interest, principal);
    InvestCalcApp.java:42: cannot find symbol
    symbol : class InvestCalc
    location: class InvestCalcApp
                     InvestCalc value2 = new InvestCalc(interest, principal);Sorry if that's a lot of reading, but I need help, I'm new at this and not quite sure what those errors mean. Thanks

    First of all make sure that class file for InvestCalc is in same directory, when you try to compile the second file.
    This will take away all the errors. Thats the primary issue here :
    you dont have files in the same place.

  • Odd xjc compilation issues

    I realized recently that my complex type issues might be due to the fact that I was using version 1.6 of JAXB so I switched over to 2.0. I downloaded version 1.5 of the jdsk/jre as well since the documentation seemed to imply version 1.4.2 wont work with JAXB 2.0. I ran the xjc compiler and it didnt raise any errors. However, the resulting packages look very bizarre and every single one of them are flagged in error. In almost every case each package has an import statement that is trying to import itself. And I have all these Syntax error on tokens error message revolving around some @XmlEnumValue function (at least i think its a function).
    Am I missing something?

    Can be very hard to impossible to track down auto sleep issues. Just get PleaseSleep.
    http://www.dragonone.com/products/macosx/pleasesleep/

Maybe you are looking for

  • GR/IR Exchange Rate Difference behavior

    Dear guru, I would like to know for the case of Invoice Receipt (IR) before goods receipt (GR) in different month with different exchange rate. For example: AUD is the local currency PO# 1230000001, PO currency EUR, Material A, Unit Price 1EUR each,

  • Multiple devices on cinema display

    Hi all, Im considering buying a cinema display. But i seem to have to following problem. There are probably lot's of people who ran into this but here my question. i own a mac mini macbook air and a 'normal' pc also used for gaming. The cinema displa

  • Synch from itunes on iMac to Ipad and iPhone

    I've eventually decided to upgrade,  my iPad (7.0.4) and iPhone (7.0.4). I lost loads of data and iTunes backups corrput (so Apple says), so iPad had to rebuilt as if new. So am woeking through everything to re-establish to as it was before. I AM LOO

  • Its twice a day or more we have to update firefox 37....what the F..?

    i ve install so many times the firefox 37 update, and everyday i got to skip it twice or more per day... it just looks like hacking...its not acceptable. sorry but firefox always worked good and safe and since some days i cant feel it so good. its a

  • "Read context" radio button  not found in ECCEHP4 version

    Hello friends,                      I am new to webdynpro abap.                      In SE80 when i click on "webdynpro wizard" button in menubar, i can not see the "Read Context" radio button. We are using ECCEHP4 version. So anyone can please tell