summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-02-17EXP-1902, EXP-1903 : Move items cut to the trash when clipboard reset.Merov Linden
2012-02-17SH-2968 WIP - more loggingBrad Payne (Vir Linden)
2012-02-17SH-2941 Fix for crash on shutdown due to race condition between LLCurl and ↵Dave Parks
LLMeshRepository
2012-02-17SH-2908 Potential fix for precision complaints from some AMD OpenGL 3.1 ↵Dave Parks
implementations.
2012-02-17SH-2968 WIP - log avatar name in more placesBrad Payne (Vir Linden)
2012-02-17made avatar rotation threshold configurable via a settingRichard Linden
2012-02-17SH-2968 WIP - simplified and consolidated DebugAvatarRezTime loggingBrad Payne (Vir Linden)
2012-02-16Fix typos in a few LLProcess::ReadPipe::find() unit tests.Nat Goodspeed
The typos didn't make for invalid tests, but they made a few tests redundant while leaving other (subtly different) cases untested.
2012-02-16EXP-1900 : Fix crash in filteringMerov Linden
2012-02-16EXP-1832 FIX Viewer Size not persistent across loginsRichard Linden
Save *window* width and height, not client area
2012-02-16EXP-1896 : Prevent recursively copying of folders onto themselvesMerov Linden
2012-02-16Attempt to fix Windows link error for LLProcess::BasePipe::npos.Nat Goodspeed
2012-02-16Fix bug in LLProcess::ReadPipe::peek() substring computation.Nat Goodspeed
Add unit tests for peek() with substring args, reimplemented contains(), various forms of find(). (yay unit tests)
2012-02-16Add unit test for LLProcess::ReadPipe::setLimit().Nat Goodspeed
2012-02-16Add LLProcess::ReadPipe::find() methods, with corresponding npos.Nat Goodspeed
If it's useful to have contains() to tell you whether incoming data contains a particular substring, and if it's useful for contains() and peek() to accept an offset within that data, then it's useful to allow you to get the offset of a desired substring within that data. But of course a find() returning offset needs something like std::string::npos for "not found"; borrow that convention. Support both find(const std::string&) and find(char); the latter permits a more efficient implementation. In fact, make find(string) recognize a string of length 1 and leverage the find(char) implementation. Given that, reimplement contains(mumble) as shorthand for find(mumble) != npos. Implement find() overloads using std::search() and std::find() on boost::asio::streambuf character iterators, rather than copying to std::string and then using string search like previous contains() implementation. Reimplement WritePipeImpl::tick() and ReadPipeImpl::tick() to write/read directly from/to boost::asio::streambuf data, instead of copying to/from a temporary flat buffer. As long as ReadPipeImpl::tick() keeps successfully filling buffers, keep reading. Previous implementation would only handle a long child write over successive tick() calls. Stop on read error or when we come up short.
2012-02-15Add unit test for listening on LLProcess::ReadPipe::getPump().Nat Goodspeed
2012-02-15EXP-1884 FIX Errors in navigating text when editing Landmarks and picks once ↵Richard Linden
a vertical scrollbar is shown fixed horizontal scrollbar showing up in local chat
2012-02-15Don't be confused by "\r\n" line endings on pipe on Windows.Nat Goodspeed
These are all very well when we just want to dump the output to a log, or whatever, but in a unit-test context it matters for comparison.
2012-02-15FIX INTL-92 8-language translation for set30eli
2012-02-15SH-2961 Fix for bumpiness not working on rigged meshes when L&S enabled.Dave Parks
2012-02-15sync with viewer-developmenteli
2012-02-15Added build params for runway non-merge repoDon Kjer
2012-02-15Added build params for thx / runway projectsDon Kjer
2012-02-15Add LLProcess::ReadPipe::size(), peek(), contains().Nat Goodspeed
Also add "len" key to event data on LLProcess::getPump(). If you've used setLimit(), event["data"].length() may not reflect the length of the accumulated data in the ReadPipe. Add unit test with stdin/stdout handshake with child process.
2012-02-15VS2010 doesn't know how to compute min(4096, size_t) :-PNat Goodspeed
2012-02-15fixed bad idiom of using statements in a ternary operatorRichard Linden
2012-02-15Fix llprocess_test.cpp's exception catching for Linux.Nat Goodspeed
In the course of re-enabling the indra/test tests last year, Log generalized a workaround I'd introduced in llsdmessage_test.cpp. In Linux viewer land, a test program trying to catch an expected exception can't seem to catch it by its specific class (across the libllcommon.so boundary), but must instead catch std::runtime_error and validate the typeid().name() string. Log added a macro for this idiom in llevents_tut.cpp. Generalize that macro further for normal-case processing as well, move it to a header file of its own and use it in all known places -- plus the new exception-catching tests in llprocess_test.cpp.
2012-02-15Automated merge with ssh://hg.lindenlab.com/richard/viewer-experienceRichard Linden
2012-02-15Add tests for LLProcess::get[Opt][Read|Write]Pipe() validations.Nat Goodspeed
2012-02-15Preliminary pipe support for LLProcess.Nat Goodspeed
Add LLProcess::FileParam to specify how to construct each child's standard file slot, with lots of comments about features designed but not yet implemented. The point is to design it with enough flexibility to be able to extend to foreseeable use cases. Add LLProcess::Params::files to collect up to 3 FileParam items. Naturally this extends the accepted LLSD syntax as well. Implement type="" (child inherits parent file descriptor) and "pipe" (parent constructs anonymous pipe to pass to child). Add LLProcess::FILESLOT enum, plus methods: getReadPipe(FILESLOT), getOptReadPipe(FILESLOT) getWritePipe(), getOptWritePipe() getPipeName(FILESLOT): placeholder implementation for now Add LLProcess::ReadPipe and WritePipe classes, as returned by get*Pipe(). WritePipe supports get_ostream() method for streaming to child stdin. ReadPipe supports get_istream() method for reading from child stdout/stderr. It also provides getPump() returning LLEventPump& so interested parties can listen for arrival of new data on the aforementioned std::istream. For "pipe" slots, instantiate appropriate *Pipe class. ReadPipe and WritePipe classes are pure virtual bases for ReadPipeImpl and WritePipeImpl, respectively: all implementation data are hidden in the latter classes, visible only in llprocess.cpp. In fact each *PipeImpl class registers itself for "mainloop" ticks, attempting nonblocking I/O to the underlying apr_file_t on each tick. Data are buffered in a boost::asio::streambuf, which bridges between std::[io]stream and the APR I/O calls. Sanity-test ReadPipeImpl by using a pipe to absorb the Python "SyntaxError" output from the successful syntax_error test, rather than alarming the user. Add first few unit tests for validating FileParam. More tests coming!
2012-02-14SH-2973 Rearrange shutdown operations to prevent crash on exit on OSXDave Parks
2012-02-14SH-2973 Rearrange shutdown operations to prevent crash on exit on OSXDave Parks
2012-02-14SH-2908 More complete GLSL 1.20 compatibility pass.Dave Parks
2012-02-14EXP-1891 FIXED ('Vehicles' category overlays avatar thumnail after setting ↵paulgproductengine
minimal width in Avatar picker floater) - Increased min width of the floater
2012-02-14EXP-1890 FIXED (The "Shop" button is partially not clickable)paulgproductengine
- Adjusted width of the panel which contains the shop button
2012-02-14EXP-1546 FIXED (received items - purchasing some bodyparts and clothing from ↵paulgproductengine
a prim marked for sale show wrong inventory icons) - In buy floater, for multiple WEARABLES inventory items show corresponding wearable icons
2012-02-13SH-2908 Fix for shaders failing to compile when using GLSL 1.20 or 1.10 profile.Dave Parks
2012-02-13SH-2973 Potential fix for crash in ~LLVOAvatarSelfDave Parks
2012-02-13SH-2973 Potential fix for crash in ~LLVOAvatarSelfDave Parks
2012-02-13Fix Linux compile issue : make templated type casting explicit (2)Merov Linden
2012-02-13SH-2908 Temporary fix for mac buildDave Parks
2012-02-13Fix Linux compile issue : make templated type casting explicitMerov Linden
2012-02-13EXP-1888 FIX -- Update text for emtpy Received Items folder in the ViewerLeslie Linden
2012-02-13Use per-frame ticks on "mainloop" LLEventPump to update LLProcess.Nat Goodspeed
When we reimplemented LLProcess on APR, necessitating APR's funny callback mechanism to sense child-process status, every isRunning() or getStatus() call called the APR poll function that calls ALL registered LLProcess callbacks. In other words, every time any consumer called any LLProcess::isRunning() method, all LLProcess callbacks were redundantly fired. Change that so that the single APR poll function is called once per frame, courtesy of the "mainloop" LLEventPump. Once per viewer frame should be well within the realtime duration in which it's reasonable to expect child-process status to change. In effect, this changes LLProcess's public API to introduce a dependency on "mainloop" ticks. Add such ticks to llprocess_test.cpp as well.
2012-02-13SH-2908 Fix for mac buildDave Parks
2012-02-13SH-2908 More linux build fixes.Dave Parks
2012-02-13Add unit tests for LLProcess::Status functionality.Nat Goodspeed
2012-02-13SH-2908 Fix for linux build.Dave Parks
2012-02-13SH-2964 Fix for shader compilation error on some older NVIDIA cards.Dave Parks
2012-02-13EXP-1863 : Add comment and dead code cleanupMerov Linden