コード例 #1
0
int LYLoadKeymap( char *arg, HTParentAnchor *anAnchor, HTFormat format_out, HTStream *sink )
{
  HTFormat format_in = HTAtom_for( "text/html" );
  HTStream *target;
  char *buf = 0;
  int i;
  target = HTStreamStack( format_in, format_out, &sink[0]._HTStream, anAnchor );
  if ( target == 0 || target == 0 )
  {
    HTSprintf0( &buf, gettext( "Sorry, no known way of converting %s to %s." ), format_in->name, format_out->name );
    HTAlert( buf );
    if ( buf )
    {
      free( buf );
      buf = 0;
    }
    return -29999;
  }
  else
  {
    anAnchor->no_cache = 1;
    HTSprintf0( &buf, "<html>\n<head>\n<title>%s</title>\n</head>\n<body>\n", gettext( "Current Key Map" ) );
    ebx( target, buf, strlen( buf ) );
    HTSprintf0( &buf, "<pre>\n" );
    ebx( target, buf, strlen( buf ) );
    i = 98;
    for ( ; i <= 123; i++ )
    {
      print_binding( target, i, 1 );
      // i++;
    }
    i = 1;
    for ( ; i <= 660; i++ )
    {
      if ( ( i > 127 || i <= 32 || !( *(short*)(*(int*)(__ctype_b_loc( )) + ( ( i + -1 ) * 2 )) & 1024 ) ) && ( LYUseMouse || keymap[ i ] != 84 ) )
        print_binding( target, i, 0 );
      // i++;
    }
    HTSprintf0( &buf, "&lt;/pre&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n" );
    ebx( target, buf, strlen( buf ) );
    ;
  }
}
コード例 #2
0
void print_binding( HTStream *target, int i, BOOLEAN both )
{
  char *buf;
  LYKeymapCode lac1 = LYK_UNKNOWN;
  if ( prev_lynx_edit_mode && no_dired_support == 0 )
  {
    lac1 = key_override[ i ];
    if ( lac1 )
    {
      buf = format_binding( key_override, i );
      if ( buf )
      {
        ebx( target, buf, strlen( buf ) );
        if ( buf )
        {
          free( buf );
          buf = 0;
          if ( both )
          {
            i += -32;
            if ( prev_lynx_edit_mode && !no_dired_support && ( key_override[ i ] & 65535 ) )
            {
              if ( key_override[ i ] != lac1 )
              {
                buf = format_binding( key_override, i );
                if ( buf )
                {
                  ebx( target, buf, strlen( buf ) );
                  if ( buf )
                  {
                    free( buf );
                    buf = 0;
                  }
                }
              }
            }
            else
            if ( keymap[ i ] != lac1 )
            {
              buf = format_binding( keymap, i );
              if ( buf )
              {
                ebx( target, buf, strlen( buf ) );
                if ( buf )
                {
                  free( buf );
                  buf = 0;
                }
              }
            }
          }
          return;
        }
      }
    }
  }
  buf = format_binding( keymap, i );
  if ( buf )
  {
    lac1 = keymap[ i ];
    ebx( target, buf, strlen( buf ) );
    if ( buf )
    {
      free( buf );
      buf = 0;
    }
  }
}
コード例 #3
0
void *QueryInputAndChangeObjectName( int Type, void *Ptr1, void *Ptr2, void *Ptr3 )
{
  int eax;
  int ecx;
  int edx;
  char *name;
  char msg[513];
  if ( Type != 1024 )
  {
    switch ( Type )
    {
    case 2:
      break;
    case 4:
      gui->prompt_for( "Linename:", ((char*)Ptr2)[84] == 0 ? ((char*)Ptr2)[84] : "" );
      break;
    case 1:
      gui->prompt_for( "Vianame:", ((char*)Ptr2)[60] == 0 ? ((char*)Ptr2)[60] : "" );
      break;
    case 256:
      __sprintf_chk( msg, 1, 513, "%s Pin Name:", ((char*)Ptr2)[64] == 0 ? &((char*)Ptr2)[64] : "" );
      ebp( msg[0], ((char*)Ptr2)[88] == 0 ? ((char*)Ptr2)[88] : "", gui->prompt_for );
      break;
    case 512:
      __sprintf_chk( msg, 1, 513, "%s Pad Name:", ((char*)Ptr2)[92] == 0 ? &((char*)Ptr2)[92] : "" );
      ebp( msg[0], ((char*)Ptr2)[88] == 0 ? ((char*)Ptr2)[88] : "", gui->prompt_for );
      break;
    case 16:
      gui->prompt_for( "Enter text:", ((char*)Ptr2)[52] == 0 ? ((char*)Ptr2)[52] : "" );
      break;
    default:
      Ptr3 = 0;
      if ( 0 ^ 0 )
      {
        __stack_chk_fail( );
      }
      return Ptr3;
      break;
    }
    if ( name == 0 )
      continue;
    else
    {
      /* phantom */ char *old;
      if ( ChangeObjectName( Type, Ptr1, Ptr2, Ptr3, name ) != -1 )
      {
        AddObjectToChangeNameUndoList( Type, Ptr1, Ptr2, Ptr3, (char*)ChangeObjectName( Type, Ptr1, Ptr2, Ptr3, name ) );
        IncrementUndoSerialNumber( );
      }
      Draw( );
    }
  }
  else
  {
    Ptr3 = Ptr1;
    Ptr2 = Ptr1;
  }
  if ( ((char*)Ptr2)[88] == 0 )
    goto B22;
  else
  {
  }
B22:;
  ebx( "Elementname:", ((char*)Ptr2)[88], PCB->Flags.f & 64, Ptr1 );
  Type = 2;
}