bool NativeKeyBindings::Execute(const WidgetKeyboardEvent& aEvent, DoCommandCallback aCallback, void* aCallbackData) { // If the native key event is set, it must be synthesized for tests. // We just ignore such events because this behavior depends on system // settings. if (!aEvent.mNativeKeyEvent) { // It must be synthesized event or dispatched DOM event from chrome. return false; } guint keyval; if (aEvent.mCharCode) { keyval = gdk_unicode_to_keyval(aEvent.mCharCode); } else { keyval = static_cast<GdkEventKey*>(aEvent.mNativeKeyEvent)->keyval; } if (ExecuteInternal(aEvent, aCallback, aCallbackData, keyval)) { return true; } for (uint32_t i = 0; i < aEvent.mAlternativeCharCodes.Length(); ++i) { uint32_t ch = aEvent.IsShift() ? aEvent.mAlternativeCharCodes[i].mShiftedCharCode : aEvent.mAlternativeCharCodes[i].mUnshiftedCharCode; if (ch && ch != aEvent.mCharCode) { keyval = gdk_unicode_to_keyval(ch); if (ExecuteInternal(aEvent, aCallback, aCallbackData, keyval)) { return true; } } } /* gtk_bindings_activate_event is preferable, but it has unresolved bug: http://bugzilla.gnome.org/show_bug.cgi?id=162726 The bug was already marked as FIXED. However, somebody reports that the bug still exists. Also gtk_bindings_activate may work with some non-shortcuts operations (todo: check it). See bug 411005 and bug 406407. Code, which should be used after fixing GNOME bug 162726: gtk_bindings_activate_event(GTK_OBJECT(mNativeTarget), static_cast<GdkEventKey*>(aEvent.mNativeKeyEvent)); */ return false; }
int main( int argc, char** argv ) { char* varlist[255]; char* command[BUFFER_LENGTH]; int argCount = 1; signal( SIGSEGV, FaultHandler ); signal( SIGBUS, FaultHandler ); signal( SIGALRM, FaultHandler ); signal( SIGILL, FaultHandler ); alarm( loopTimer ); EXIT_STATUS = 0; if ( argc > 1 ){ DEBUG_LEVEL = atoi( argv[1] ); } else { DEBUG_LEVEL = 0; } if ( setjmp( buf )) { resets++; if (resets > 2 ){ ExitShell(-1); } printf("\tWARNING: recovered from an exception\n"); } /* set default values */ InitShell( command ); while ( EXIT_STATUS != 1 ){ /* prompt only if input is from STDIN */ if( isatty( STDIN_FILENO )){ /* display prompt */ printf("%s", PROMPT); } /* get input and parse command */ argCount = InputPrompt( command ); /* make sure returned command is not empty and command is not internally recognized */ if ( argCount ){ if ( !ExecuteInternal( command, varlist )) { ExecuteExternal( command, argCount ); } } } ExitShell( EXIT_STATUS ); }
void LuaContext::Execute(Json::Value& output, const std::string& command) { std::string s; ExecuteInternal(&s, command); Json::Reader reader; if (!reader.parse(s, output)) { throw OrthancException(ErrorCode_BadJson); } }
WfRuntimeExecutionAction WfRuntimeThreadContext::Execute(IWfDebuggerCallback* callback) { try { switch (status) { case WfRuntimeExecutionStatus::Ready: case WfRuntimeExecutionStatus::Executing: { if (stackFrames.Count() == 0) { INTERNAL_ERROR(L"empty stack frame."); } auto& stackFrame = GetCurrentStackFrame(); if (stackFrame.nextInstructionIndex < 0 || stackFrame.nextInstructionIndex >= globalContext->assembly->instructions.Count()) { INTERNAL_ERROR(L"illegal instruction index."); } auto insIndex = stackFrame.nextInstructionIndex; CALL_DEBUGGER(callback->BreakIns(globalContext->assembly.Obj(), insIndex)); stackFrame.nextInstructionIndex++; auto& ins = globalContext->assembly->instructions[insIndex]; return ExecuteInternal(ins, stackFrame, callback); } break; case WfRuntimeExecutionStatus::RaisedException: if (trapFrames.Count() > 0) { auto trapFrame = GetCurrentTrapFrame(); if (trapFrame.stackFrameIndex == stackFrames.Count() - 1) { CONTEXT_ACTION(PopTrapFrame(0), L"failed to pop the trap frame"); GetCurrentStackFrame().nextInstructionIndex = trapFrame.instructionIndex; status = WfRuntimeExecutionStatus::Executing; return WfRuntimeExecutionAction::UnwrapStack; } else if (stackFrames.Count() > 0) { CONTEXT_ACTION(PopStackFrame(), L"failed to pop the stack frame."); return WfRuntimeExecutionAction::UnwrapStack; } } break; default:; } return WfRuntimeExecutionAction::Nop; } catch (const WfRuntimeException& ex) { if (ex.GetInfo()) { RaiseException(ex.GetInfo()); } else { RaiseException(ex.Message(), ex.IsFatal()); } return WfRuntimeExecutionAction::ExecuteInstruction; } catch (const Exception& ex) { RaiseException(ex.Message(), false); return WfRuntimeExecutionAction::ExecuteInstruction; } catch (const Error& ex) { RaiseException(ex.Description(), false); return WfRuntimeExecutionAction::ExecuteInstruction; } }
void LuaContext::Execute(EmbeddedResources::FileResourceId resource) { std::string command; EmbeddedResources::GetFileResource(command, resource); ExecuteInternal(NULL, command); }
void Octree::Execute(OctreeQuery& query) { query.result_.clear(); ExecuteInternal(query, false); }