コード例 #1
0
ファイル: oututil.cpp プロジェクト: nealey/vera
//---------------------------------------------------------------------------
uchar out_nodelist(uval_t nodeid, uchar pos, const char *pref)
{
  uval_t cnt, off = 0;
  netnode   node(nodeid);

  if ( (cnt = node.altval(0)) == 0) DESTROYED("out::nodelist" );

  if ( pref ) {  // jasmin
    if ( change_line() ) {
bad:
      return(0);
    }
    off = strlen(pref);
  }

  for(register unsigned i = 0; ;  ) {
    if ( pref) { // jasmin (single directive per line )
      curpos = pos;
      out_keyword(pref);
      outcnt = (size_t)off;
    } else if ( i && chkOutSymSpace(',') ) goto bad; // prompted list
    if ( out_alt_ind((uint32)node.altval(++i)) ) goto bad;
    if ( i >= cnt) return(1 );
    if ( pref && change_line() ) goto bad; // jasmin
  }
}
コード例 #2
0
//---------------------------------------------------------------------------
uchar out_nodelist(uval_t nodeid, uchar pos, const char *pref)
{
  netnode node(nodeid);
  uval_t cnt = node.altval(0);
  if ( cnt == 0 )
    DESTROYED("out::nodelist");

  uval_t off = 0;
  if ( pref ) // jasmin
  {
    if ( change_line() )
    {
bad:
      return 0;
    }
    off = strlen(pref);
  }

  for ( uint i = 0; ;  )
  {
    if ( pref ) // jasmin (single directive per line)
    {
      curpos = pos;
      out_keyword(pref);
      outcnt = off;
    }
    else if ( i && chkOutSymSpace(',') )
    {
      goto bad; // prompted list
    }
    if ( out_alt_ind((uint32)node.altval(++i)) )
      goto bad;
    if ( i >= cnt )
      return 1;
    if ( pref && change_line() )
      goto bad; // jasmin
  }
}