1 2002-10-25 Angus Leeming <leeming@lyx.org>
3 * forkedcall.[Ch]: split ForkedCall up into a base class ForkedProcess
4 and a minimal ForkedCall daughter class.
6 * forkedcontr.[Ch]: minimal changes reflecting the use of a
7 ForkedProcess base class responsible for launching all child proceses.
9 2002-09-25 Angus Leeming <leeming@lyx.org>
12 * LOstream.h: doxygen fixes.
14 2002-09-24 Angus Leeming <leeming@lyx.org>
16 * most files: clean-up the license info.
18 2002-09-24 Lars Gullik Bjønnes <larsbj@gullik.net>
20 * Makefile.am (INCLUDES): loose SIGC_INCLUDES
22 2002-09-16 Kayvan A. Sylvan <kayvan@sylvan.com>
24 * os.h, os_os2.C, os_win32.C, os_unix.C: Added popen_read_mode(),
25 since at least for Cygwin, the "rb" read_mode acceptable for
26 fopen() is illegal for popen(), whose mode argument *must* be "r"
29 * filetools.C (RunCommand): Uses os::popen_read_mode() instead
32 2002-08-20 Lars Gullik Bjønnes <larsbj@birdstep.com>
34 * Makefile.am (libsupport_la_SOURCES): delete smart_ptr.h and
37 * smart_ptr.h: remove file
40 2002-08-20 Lars Gullik Bjønnes <larsbj@gullik.net>
42 * lyxfunctional.h: remove class_fun_t, void_class_fun_t,
43 class_fun and void_class_fun
45 2002-08-20 John Levon <levon@movementarian.org>
50 2002-08-14 Lars Gullik Bjønnes <larsbj@gullik.net>
52 * textutils.h: formatting.
54 2002-08-08 John Levon <levon@movementarian.org>
56 * limited_stack.h: default to 100 not 10
58 2002-08-01 John Levon <levon@movementarian.org>
60 * forkedcall.C: more details on error
62 2002-07-29 Lars Gullik Bjønnes <larsbj@gullik.net>
64 * lstrings.[hC]: rename stip to rtrim and frontStrip to ltrim,
65 also add a trim function that is the equiv of
66 strip(frontStrip(...)), also reimplement the functions
67 (improvements still possible.)
69 * filetools.C: strip,frontStrip -> trim,ltrim,rtrim
70 * forkedcall.C (generateChild): ditto
74 2002-07-28 Lars Gullik Bjønnes <larsbj@gullik.net>
76 * filetools.C (GetEnvPath): modify because of strip changes
77 (createDirectory): ditto
79 * lstrings.[Ch] (isStrInt): ditto
80 (isStrUnsignedInt): ditto
82 (strToUnsignedInt): ditto
84 (contains): removed unneeded version of contains
85 (containsOnly): removed uneeded versions of containsOnly
86 (strip, frontStrip): removed unneded versions, changed argument types.
88 2002-07-22 Dekel Tsur <dekelts@tau.ac.il>
90 * filetools.C (RunCommand): Made public
92 2002-07-22 John Levon <moz@compsoc.man.ac.uk>
94 * limited_stack.h: fix comment, remove un-needed header
96 2002-07-21 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
98 * lstrings.h: correct comments for token and tokenPos
100 2002-07-20 Dekel Tsur <dekelts@tau.ac.il>
102 * lyxstring.C (operator>>): replace code which works only with
103 _some_ versions of GNU STL with generic one
105 2002-07-18 Angus Leeming <leeming@lyx.org>
107 * FileMonitor.[Ch]: new files. Monitor a file for any change and emit a
108 signal should it do so.
110 * Makefile.am: add FileMonitor.[Ch].
112 2002-07-18 André Pönitz <poenitz@gmx.net>
114 * filetools.C (LibScriptSearch): bug fix
116 2002-07-17 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
118 * filetools.C (LyXReadLink): add bool 'resolve' to return link
119 contents as an absolute path
121 2002-07-15 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
123 * filetools.C (IsLyXFilename):
124 (IsSGMLFilename): use ascii_lowercase instead of lowercase
126 * lstrings.[Ch] (ascii_lowercase): new function
128 2002-07-16 André Pönitz <poenitz@gmx.net>
130 * FileInfo.Ch: remove unneeded code
132 2002-06-20 Herbert Voss <voss@perce.de>
134 * filetools.[C] (readExtFromContents): add support for
137 2002-06-26 André Pönitz <poenitz@gmx.net>
139 * filetools.[Ch]: small whitespace, more compact 'return' statement
141 2002-06-19 John Levon <moz@compsoc.man.ac.uk>
143 * lyxalgo.h: add eliminate_duplicates
145 2002-06-17 Herbert Voss <voss@perce.de>
147 * filetools.[C]: (readBB_from_PSFile) add a helperfunc
148 (readBB_lyxerrMessage) to get better lyxerr messages
149 (getExtFromContents) test epsi files in the right way
151 * DestroxLyXTmpDir.C: changed to true, to delete the
152 temporary unzipped files, too.
154 2002-06-10 Lars Gullik Bjønnes <larsbj@birdstep.com>
156 * putenv.C (putenv): putenv should never be found in std::
158 * kill.C (kill): kill should never be found in std::
160 * filetools.C: pclose and popen should never be found in std::
162 2002-06-07 Angus Leeming <leeming@lyx.org>
164 Fixes needed to compile with Compaq cxx 6.5.
165 * lyxfunctional.h: rename lyx::class_fun(C & c, void(C::*f)(A)) as
166 lyx::void_class_fun to avoid compiler problems with Compaq cxx 6.5:
167 more than one instance of overloaded function "lyx::class_fun" matches
177 all c-library variables have been moved into namespace std.
178 Wrap using std::xyz declarations inside a #ifndef CXX_GLOBAL_CSTD block.
180 * kill.C: rename signal.h as csignal.
182 * putenv.C: rename stdlib.h as cstdlib
184 2002-06-05 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
186 * lxtl.h: remove unused file
188 2002-05-30 John Levon <moz@compsoc.man.ac.uk>
195 * StrPool.C: remove unused files
205 * types.h: document and small cleanups
207 2002-05-29 Lars Gullik Bjønnes <larsbj@birdstep.com>
209 * switch from SigC signals to boost::signals.
211 2002-05-26 John Levon <moz@compsoc.man.ac.uk>
214 * limited_stack.h: new template for limited-size
217 2002-05-25 Lars Gullik Bjønnes <larsbj@birdstep.com>
219 * filetools.C: do not include LSubstring.h
221 * lstrings.C: change include order
222 (regexMatch): use boost regex get rid of LRegex and LSubstring
224 * Makefile.am (libsupport_la_SOURCES): delete regex and substring
227 * LSubstring.h: remove file
232 * LSubstring.C: ditto
234 2002-05-24 Juergen Vigna <jug@sad.it>
236 * lyxsum.C: include local includes first (self containment)
238 2002-05-22 Lars Gullik Bjønnes <larsbj@birdstep.com>
240 * forkedcall.h: use more specific smart_ptr header.
242 * lyxsum.C: move some using declarations around.
244 2002-05-03 Herbert Voss <voss@perce.de>
246 * filetools.C (getExtFromContents): only print the first 60 chars of
247 the scanned-string when debugging.
249 2002-05-02 Lars Gullik Bjønnes <larsbj@birdstep.com>
251 * lyxstring.C: close to typo fix.
253 2002-05-02 Angus Leeming <a.leeming@ic.ac.uk>
255 * filetools.C: add a using std::getline directive.
257 2002-05-02 Lars Gullik Bjønnes <larsbj@birdstep.com>
259 * lyxstring.C (operator>>): try a new version of the operator>>
261 2002-04-14 Herbert Voss <voss@perce.de>
263 * lstrings.[Ch]: move the getVectorFromString and the vice versa
264 from frontends/controllers/helper_funcs for better use in other
267 2002-04-15 Angus Leeming <a.leeming@ic.ac.uk>
269 * tempname.C (make_tempfile): simplify the #ifdef block by using
270 #if defined and re-write the #warning as a #error because it's terminal.
272 2002-04-08 Herbert Voss <voss@perce.de>
274 * filetools.C (getExtFromContents): get tgif run
276 2002-04-08 Angus Leeming <a.leeming@ic.ac.uk>
278 * filetools.C (getExtFromContents): re-format a little and remove
279 replicated "sgi" entry.
281 2002-04-07 Herbert Voss <voss@perce.de>
283 * filetools.[Ch]: add readBB_from_PSFile() to make bb available
284 for the lyx-view in graphics (moved from ControlGraphics)
286 2002-04-07 Herbert Voss <voss@perce.de>
288 * filetools.C: fix bug for eps. scans now a whole line
290 2002-04-06 Lars Gullik Bjønnes <larsbj@birdstep.com>
292 * lyxstring.C (operator>>): use the better solution, this fixes a
293 "not able to read '\0'" bug.
295 2002-04-05 Lars Gullik Bjønnes <larsbj@birdstep.com>
297 * translator.h: add missing typename
299 2002-03-27 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
301 * filetools.C (LibScriptSearch): new command. Searches for scripts
302 in lyx data directories.
303 (LibScriptSearch): try to use split() correctly.
305 2002-03-21 Lars Gullik Bjønnes <larsbj@birdstep.com>
307 * most files: ws cleanup
309 * Makefile.am: remove ld -r stuff
311 2002-03-20 Lars Gullik Bjønnes <larsbj@birdstep.com>
313 * Makefile.am (libsupport.la): special rules if partial linking
315 2002-03-14 Angus Leeming <a.leeming@ic.ac.uk>
317 * forkedcontr.C: turn the timer off when their are no longer any
318 child processes running.
320 2002-03-11 Lars Gullik Bjønnes <larsbj@birdstep.com>
322 * forkedcall.h: docy fix
323 change SignalType second type to be const ref.
325 * forkedcall.C: doxy fix
327 2002-03-11 Kayvan A. Sylvan <kayvan@sylvan.com>
329 * lyxsum.C: compilation fix
331 2002-03-02 Herbert Voss <voss@perce.de>
333 * filetools.C: fix bug for xbm format and added some more debug
336 2002-03-02 Lars Gullik Bjønnes <larsbj@birdstep.com>
338 * forkedcontr.h: make constructor public
340 * types.h: remove layout_type
342 2002-03-01 Angus Leeming <a.leeming@ic.ac.uk>
344 * filetools.C (getExtFromContents): cleanup.
346 * forkedcontr.h (d-tor): make it public for Dekel's crappy compiler.
348 2002-02-27 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
350 * Makefile.am (SIGC_INCLUDES): add a -I directive for when
351 building outside of source tree.
353 2002-02-19 Angus Leeming <a.leeming@ic.ac.uk>
356 * forkedcontr.[Ch]: new files. Asger's forked call controller is
357 re-born, with a working timer and a modified interface. The
358 startscript method is now passed a Signal rather than a pointer
359 to a callback function. This enables us to connect to the method of
360 a C++ class, if we so desire.
362 * Makefile.am: add forkedcall.[Ch], forkedcontr.[Ch].
364 2002-02-26 John Levon <moz@compsoc.man.ac.uk>
369 * nt_defines.h: moved from src/
371 2002-02-23 Herbert Voss <voss@perce.de>
373 * filetools.C: added more graphic formats
375 2002-02-18 Herbert Voss <voss@perce.de>
377 * filetools.C: (getExtFromContents) return the fileextension
378 if no format is detected.
380 2002-02-18 Angus Leeming <a.leeming@ic.ac.uk>
382 * syscall.[Ch]: renamed as systemcall.[Ch]. class Systemcalls renamed
383 as class SystemCall because one Systemcall instance represents a
384 single child process.
387 * Makefile.am: associated changes.
389 2002-02-18 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
391 * syscall.C (Systemcalls): include <cstdlib>
393 2002-02-08 Herbert Voss <voss@perce.de>
395 * filetools.C: (getExtFromContents) adding Grace-format
398 2002-02-16 Angus Leeming <a.leeming@ic.ac.uk>
401 * syssingleton.C: files removed.
403 * syscall.[Ch]: remove the forked calls interface, as nothing, nowhere
404 uses it. Strip down the Systemcalls interface to make it brutally
405 obvious how unsophisticated it is.
407 2002-02-08 Herbert Voss <voss@perce.de>
409 * filetools.C: (getExtFromContents) adding TGIF-format
410 and return type "user" when no type is detected
412 2002-02-13 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
414 * textutils.h: remove IsLineSeparatorChar(char, Inset *)
416 2002-02-10 Kayvan Sylvan <kayvan@sylvan.com>
418 * os_win32.C: Add "using std::endl" to fix compilation for GCC 3.X.
420 2002-02-08 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
422 * FileInfo.h: remove special cygwin code.
424 * filetools.C (do_popen): use os::read_mode().
426 * os_win32.C (read_mode):
427 * os_os2.C (read_mode):
428 * os_unix.C (read_mode): new method
430 * filetools.C (do_popen): fix for cygwin compatibility (from Claus
431 Hentschel). This code should maybe be moved to os:: class.
433 2002-02-08 Herbert Voss <voss@perce.de>
435 * filetools.C: (unzipFile) fix typo
437 2002-02-06 Herbert Voss <voss@perce.de>
439 * filetools.[Ch]: fix some bugs for detecting zipped files
442 2002-02-04 Herbert Voss <voss@perce.de>
444 * filetools.[Ch]: add ifZippedFile() for zipped
447 2002-02-04 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
449 * filetools.C (FileOpenSearch): remove duplicated line, probably
450 resulting from bad cut-and paste.
452 2002-01-31 Herbert Voss <voss@perce.de>
454 * filetools.[Ch]: add getExtFromContents(), which returns
455 the type of the (graphic) file
457 2002-01-30 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
459 * copy.C (copy): open file in binary mode (for cygwin)
461 2002-01-19 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
463 * lyxsum.C: remove #warnings and replaced them with runtime debug
466 2002-01-14 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
468 * lyxalgo.h: include <algorithm>
470 2002-01-14 Angus Leeming <a.leeming@ic.ac.uk>
472 * lyx_algo.h: add a standard-conforming count to namespace lyx.
474 * lstrings.[Ch] (countChar): removed. Use lyx::count.
476 2002-01-05 John Levon <moz@compsoc.man.ac.uk>
478 * filetools.C: fix use of FileInfo
481 * FileInfo.C: add Asserts and documentation
483 2001-12-20 Kayvan A. Sylvan <kayvan@sylvan.com>
485 * os_win32.C: compilation fixes
487 2001-12-19 Jean-Marc Lasgouttes <lasgouttes@freesurf.fr>
489 * lstrings.h: do not include <cctype>
491 2001-12-12 Ben Stanley <bds02@uow.edu.au>
493 * lyxsum.C: portability fix for mmap patch
495 2001-12-05 Lars Gullik Bjønnes <larsbj@birdstep.com>
499 * lyxstring.C: change "while(" to "while ("
501 2001-12-03 Ben Stanley <bds02@uow.edu.au>
503 * lyxsum.C: Added mmap version of CRC and made it selected
504 by default where available. Used process_block for crc for speedup.
506 2001-12-01 John Levon <moz@compsoc.man.ac.uk>
508 * filetools.C: more robust failure for DirList()
510 2001-11-29 André Pönitz <poenitz@gmx.net>
512 * types.h: introduce types for textclass numbers and layout numbers
514 2001-11-28 André Pönitz <poenitz@gmx.net>
516 * Makefile.am: put types.h in
518 2001-11-26 André Pönitz <poenitz@gmx.net>
520 * types.h: introduce types for paragraph positions and layout numbers
522 2001-11-04 John Levon <moz@compsoc.man.ac.uk>
524 * filetools.C: remove dead code
526 * syscall.C: show prog in fail case
528 2001-10-24 Andre Poenitz <poenitz@HTWM.De>
530 * filetools.C: code style cleanup
532 2001-10-23 Angus Leeming <a.leeming@ic.ac.uk>
534 * os.h: remove spurious punctuation.
536 2001-10-19 John Levon <moz@compsoc.man.ac.uk>
539 * LAssert.C: use new emergencyCleanup()
541 2001-10-12 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
543 * filetools.C (i18nLibFileSearch): check also LANGUAGE and LC_ALL,
544 like GNU gettext does.
546 2001-10-08 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
548 * filetools.C (AbsolutePath): Use os::is_absolute_path() (also in
550 (findtexfile): oops! the change from last friday was wrong...
552 * os_win32.C (is_absolute_path):
553 * os_unix.C (is_absolute_path):
554 * os_os2.C (is_absolute_path): new method
556 2001-10-05 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
558 * filetools.C (findtexfile): apply os::internal_path to the result.
560 2001-07-02 Claus Hentschel <claus.hentschel@mbau.fh-hannover.de>
565 * os.h: add internal_path method, which converts a unix-type file
566 name to the type known to the underlying file system (currently
567 only useful on cygwin) [from Ruurd A. Reitsma and Claus Hentschel]
569 2001-08-18 Lars Gullik Bjønnes <larsbj@birdstep.com>
571 * smart_ptr.h: new file
573 * utility.h: new file
575 2001-08-01 John Levon <moz@compsoc.man.ac.uk>
578 * filetools.C (IsDirWriteable): fix this
580 2001-07-26 Baruch Even <baruch@lyx.org>
582 * lyxlib.h (float_equal): Added function to compare floats almost equal
583 (see function comment).
585 2001-07-13 Angus Leeming <a.leeming@ic.ac.uk>
587 Consistent use of Lsstream.h:
588 * filetools.C (GetFileContents): std::ostringstream -> ostringstream.
590 2001-07-12 Lars Gullik Bjønnes <larsbj@birdstep.com>
592 * translator.h: (*it). -> it->
594 2001-06-26 The LyX Project <lyx@violet.home.sad.it>
596 * filetools.C (DeleteAllFilesInDir): send debug output to
597 Debug::FILES instewad of Debug::ANY.
599 * DebugStream.h: remove gcc 2.8.x hack.
601 2001-06-26 The LyX Project <jug@sad.it>
604 * lstrings.C (escape): move method to escape non ascii characters
605 from insets label and ref to here.
607 2001-06-25 The LyX Project <jug@sad.it>
609 * filetools.C (IsLyXFilename):
610 (IsSGMLFilename): do case insensitive name matching
612 2001-06-24 The LyX Project <jug@sad.it>
614 * lstrings.C (compare_ascii_no_case): version of compare_no_case
615 which only considers case of ascii characters
617 * lyxstring.C (replace): added for compatibility with gcc 2.95.3+
620 2001-06-23 The LyX Project <jug@sad.it>
622 * textutils.h (IsPrintable): take into account unprintable spaces
624 (IsDigit): new function
625 (IsLetterCharOrDigit): use IsDigit
627 2001-06-20 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
629 * filetools.C (findtexfile): strip final \r if necessary (for
632 2001-06-19 Angus Leeming <a.leeming@ic.ac.uk>
635 * StrPool.C: removed // -*- C++ -*- as first line.
637 2001-06-01 Lars Gullik Bjønnes <larsbj@birdstep.com>
639 * lyxsum.C (do_crc): switch to use boost::crc for generating the
642 2001-06-01 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
647 * LSubstring.C: bring C functions in global namespace if
650 * lstrings.h (compare): use the std:: version of str[n]cmp only
653 2001-05-31 Lars Gullik Bjønnes <larsbj@birdstep.com>
655 * syscontr.C: add std::
657 * syscall.C: add std::
659 * lstrings.h (compare): add std::
661 * lstrings.C (prefixIs): add std::
665 * LSubstring.C (LSubstring): add std::
667 2001-05-30 Lars Gullik Bjønnes <larsbj@birdstep.com>
669 * lyxsum.C (sum): use istreambuf_iterator when available.
671 2001-05-29 Lars Gullik Bjønnes <larsbj@birdstep.com>
673 * lyxsum.C (sum): don't use sstream anymore, use istream_iterator
676 * lyxstring.C (operator): make const operator[] behave as
679 2001-05-22 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
681 * Makefile.am (EXTRA_DIST): add the os_*.C files.
683 2001-05-21 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
685 * filetools.C (MakeAbsPath): remove debugging statement
687 2001-05-16 Ruurd Reitsma <r.a.reitsma@wbmt.tudelft.nl>
689 * FileInfo.h: X_OK workaround for cygwin
698 * filetools.h: Added os:: class.
702 * tempname.C: OS/2 fixes
704 2001-05-03 Lars Gullik Bjønnes <larsbj@birdstep.com>
706 * textutils.h: remvoe !NEW_INSETS cruft
708 2001-05-02 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
711 * atoi.C: add using directives when needed for C functions
712 declared in std:: namespace.
714 2001-04-25 Lars Gullik Bjønnes <larsbj@birdstep.com>
716 * lstrings.C : add two helper structs, local_lowercase and
718 (lowercase): change to use std::transform
719 (uppercase): change to use std::transform
721 2001-04-25 Allan Rae <rae@lyx.org>
723 * lyxstring.C : Assert got moved and Lars missed a few.
725 2001-04-24 Lars Gullik Bjønnes <larsbj@birdstep.com>
727 * LAssert.h (Assert): put into namespace lyx
729 * lyxfunctional.h: put into namespace lyx
730 * translator.h: adjust
732 2001-04-17 Lars Gullik Bjønnes <larsbj@birdstep.com>
734 * lyxalgo.h: put into namespace lyx, add firster and copy_if
736 * FileInfo.h: inherit privately from noncopyable
739 2001-04-16 Allan Rae <rae@lyx.org>
741 * tempname.C (make_tempfile): #warning triggers an error on Sun CC 6.0
742 as an unrecognised preprocessor directive. So ensure they're wrapped.
744 2001-03-15 Lars Gullik Bjønnes <larsbj@trylle.birdstep.com>
746 * several files: remove CXX_WORKING_NAMESPACES
748 * FileInfo.h: noncopyable is in namespace boost
751 2001-02-16 John Levon <moz@compsoc.man.ac.uk>
753 * syscontr.h: fix header include
755 2001-02-28 Baruch Even <baruch@ev-en.org>
757 * filetools.C: Removed dependency on syscall.h
760 * syscall.C: Minor cleanings before I start to touch this code.
762 2001-02-27 Lars Gullik Bjønnes <larsbj@trylle.birdstep.com>
764 * filetools.C (CreateTmpDir): change umask to 0700.
766 2001-02-27 José Matos <jamatos@fep.up.pt>
768 * filetools.h (BasePath):
769 * filetools.C (BasePath): removed since it is a duplicate of OnlyPath.
771 * filetools.C (IsLyXFilename):
772 * filetools.C (IsSGMLFilename): test if extension is suffix and not
775 2001-02-14 Lars Gullik Bjønnes <larsbj@lyx.org>
779 * atoi.C: remove cruft
781 2001-02-06 albert chin <china@thewrittenword.com>
784 * fmt.C: use HAVE_DECL_SNPRINTF
786 2001-01-26 Dekel Tsur <dekelts@tau.ac.il>
788 * lyxstring.C: Fix some assertions.
790 2001-01-23 Dekel Tsur <dekelts@tau.ac.il>
792 * lstrings.C (strip): Add a fix for compilers with broken
793 string::find_last_not_of.
795 * filetools.C (AddPath): Simplify by using strip and frontStrip.
797 2001-01-20 Dekel Tsur <dekelts@tau.ac.il>
799 * lyxstring.C (rfind): Fix broken functions.
800 (find): Few optimizations.