anchor.diff:  
   'ctl->name2' is reserved for future use.
   
  +*NOTE:* that if multiple server binaries are advertising some service
  +lets say "MYSVC" and event is subscribed for any of the server binaries, then
  +if event is triggered, it will be delivered to "MYSVC" service as a one message. 
  +There is guarantee to which copy message will pass. Thus if all servers needs to
  +be notified with the event, each server shall advertise unique server name and
  +subscribe it to particular event. In that case matching event will be delivered
  +to all interested executables. For example:
  +
  +--------------------------------------------------------------------------------
  +
  +int tpsvrinit(int argc, char **argv)
  +{
  +    TPEVCTL evctl;
  +    char svcnm[XATMI_SERVICE_NAME_LENGTH+1];
  +
  +    snprintf(svcnm, sizeof(svcnm), "MYSVC_%d", tpgetsrvid())
  +
  +    if (EXSUCCEED!=tpadvertise(svcnm, MYSVC))
  +    {
  +        NDRX_LOG(log_error, "Failed to advertise %s!", svcnm);
  +        ret=EXFAIL;
  +        goto out;
  +    }
  +
  +    memset(&evctl, 0, sizeof(evctl));
  +
  +    NDRX_STRCPY_SAFE(evctl.name1, svcnm);
  +    evctl.flags|=TPEVSERVICE;
  +
  +    /* Subscribe to event server */
  +    if (EXFAIL==tpsubscribe("EVTEST", NULL, &evctl, 0L))
  +    {
  +        NDRX_LOG(log_error, "Failed to subscribe to EVTEST: %s", 
  +                                        tpstrerror(tperror));
  +        ret=EXFAIL;
  +        goto out;
  +    }
  +
  +out:
  +    return ret;
  +}
  +--------------------------------------------------------------------------------
  +
  +
   
   *Valid flags*
   
  -*TPNOTRAN* Do not call service in transaction mode. This is effective in case if caller process is running in transaction mode, but destination process shall not run in the same global transaction
  +*TPNOTRAN* Do not call service in transaction mode. This is effective in 
  +case if caller process is running in transaction mode, but 
  +destination process shall not run in the same global transaction
   
  -*TPSIGRSTRT* Restart the system call in progress if interrupted by signal handler. This affects only underlaying mq_* function calls.
  +*TPSIGRSTRT* Restart the system call in progress if interrupted by signal 
  +handler. This affects only underlying mq_* function calls.
   
  -*TPNOTIME* Ignore timeout setting (*NDRX_TOUT* env variable). Wait for reply for infinitely.
  +*TPNOTIME* Ignore timeout setting (*NDRX_TOUT* env variable). 
  +Wait for reply for infinitely.
   
   *Valid ctl->flags*
   
  -*TPEVSERVICE* Call the service. Note that service will be called with flags which are present at 'ctl->flags' | *TPNOREPLY*.
  +*TPEVSERVICE* Call the service. Note that service will be called with 
  +flags which are present at 'ctl->flags' | *TPNOREPLY*.
   
  -*TPEVPERSIST* Do not remove service for event brokers registry, if service is not available any more (detected at point *tpcall()* to service failed).
  +*TPEVPERSIST* Do not remove service for event brokers registry, if service 
  +is not available any more (detected at point *tpcall()* to service failed).
   
   This function is available only for XATMI servers.
   
   RETURN VALUE
   ------------
  -On success, *tpsubscribe()* return subscribtion id; on error, -1 is returned, with *tperrno* set to indicate the error.
  +On success, *tpsubscribe()* return subscribtion id; on error, -1 is 
  +returned, with *tperrno* set to indicate the error.
   
   ERRORS
   ------
  -Note that *tpstrerror()* returns generic error message plus custom message with debug info from last function call.
  +Note that *tpstrerror()* returns generic error message plus custom message 
  +with debug info from last function call.
   
  -*TPEINVAL* Invalid parameter is given to function. Event expression is *NULL* or empty. Event expression is longer than 255 bytes, 'ctl' is NULL, or 'clt->name1' is empty or filter is set and longer than 255 bytes.
  +*TPEINVAL* Invalid parameter is given to function. Event expression is *NULL* 
  +or empty. Event expression is longer than 255 bytes, 'ctl' is NULL, 
  +or 'clt->name1' is empty or filter is set and longer than 255 bytes.
   
   *TPENOENT* Event server is not available.
   
  
positive.code: 
  *TPESVCFAIL* Service returned 'TPFAIL'. This is application level failure.
  
  *TPESVCERR* System level service failure. Server died during the message presence in service queue.
  
  *TPESYSTEM* System failure occurred during serving. See logs i.e. user log, or debugs for more info.
  
  *TPEOS* System failure occurred during serving. See logs i.e. user log, or debugs for more info.
  
  BUGS
  ----
  
negative.code: 
  DESCRIPTION
  -----------
  Subscribe to event. This is API function for Enduro/X event broker services. 
  In order to get the functionality working, then event server must be started and
   configured. See *tpevsrv(8)* manpage. 'eventexpr' is regular expression 
  syntax based expression which is registered into event broker, so that if it 
  is matched then event is posted to service, written in 'ctl->name1' field. 
  Note that many servers with the same service can subscribe to same event. 
  All server's services will receive the event. 'filter' is boolean expression 
  for *UBF* or regular expression for *STRING* buffer which are extra expression 
  to be tested, when event name matched. If 'filter' is true or *NULL*, 
  then event is posted to service.
  
  The *TPEVCTL* structure is following:
  
  