1 1999-10-25 Juergen Vigna <jug@sad.it>
4 * forms/layout_forms.fd +
5 * forms/latexoptions.fd +
6 * lyx.fd: changed for various form resize issues
8 * src/mathed/math_panel.C +
9 * src/insets/inseterror.C +
10 * src/insets/insetinfo.C +
11 * src/insets/inseturl.C +
12 * src/insets/inseturl.h +
16 * src/ParagraphExtra.C +
19 * src/layout_forms.C +
26 * src/menus.C: fixed various resize issues. So now forms can be
27 resized savely or not be resized at all.
30 * src/insets/form_url.[Ch]: added because it's cleaner and easier
33 * src/insets/Makefile.am: added files form_url.[Ch]
35 1999-10-25 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
37 * INSTALL: it is now possible to compile LyX with digital C++ 6.1
40 * src/{BufferView,LyXView,combox,filedlg,intl,lyxserver,lyxvc,
41 menus,minibuffer,toolbar}.{C,h}: added C_xxx wrappers around
42 remaining static member callbacks.
44 * src/lyxfunc.C (Dispatch): Use _() instead of N_() fot minibuffer
47 * src/support/lyxstring.h: declare struct Srep as friend of
48 lyxstring, since DEC cxx complains otherwise.
50 1999-10-24 Lars Gullik Bjønnes <larsbj@lyx.org>
52 * src/spellchecker.C (create_ispell_pipe): removed old #warning,
53 the code has shown itself to work
54 (create_ispell_pipe): removed another warning, added a comment
57 * src/minibuffer.C (ExecutingCB): removed code that has been
58 commented out a long time
60 * src/lyxfunc.C (processKeyEvent): removed some very old commented
63 * src/support/lyxstring.h: comment out the three private
64 operators, when compiling with string ansi conforming compilers
67 * src/mathed/math_symbols.C (AddBitmap): change 6th arg to be
69 (pixmapFromBitmapData): change type of bdata to be unsigned char *
70 (pixmapFromBitmapData): add a reinterpret_cast in the call to
73 * src/mathed/math_panel.h: change 6th arg to AddBitmap to be
76 * src/mathed/math_panel.C (create_math_panel): remove explicit
79 * src/bmtable.h: change last paramter to fl_set_bmtable_data to be
82 * src/bmtable.C (struct BMTABLE_SPEC): make bdata unsigned char *
83 (draw_bitmaptable): add a reinterpret_cast to sp->bdata in the call
84 to XCreatePixmapFromBitmapData
85 (fl_set_bmtable_data): change the last argument to be unsigned
87 (fl_set_bmtable_file): change bdata to unsinged char *, change bw
88 and bh to be unsigned int, remove explicit casts in call to
91 * images/arrows.xbm: made the arrays unsigned char *
92 * images/varsz.xbm: ditto
93 * images/misc.xbm: ditto
94 * images/greek.xbm: ditto
95 * images/dots.xbm: ditto
96 * images/brel.xbm: ditto
97 * images/bop.xbm: ditto
99 * Makefile.am (MAINTAINERCLEANFILES): added po/POTFILES.in
101 * acinclude.m4 (LYX_GXX_STRENGHT_REDUCE): removed.
102 (LYX_PROG_CXX): added -pedantic to g++ compile options when
103 with-warnings, removed the __STRING_ANSI__ hack, seems to not be
105 (LYX_CXX_CHEADERS): added <clocale> to the test.
107 1999-10-23 Lars Gullik Bjønnes <larsbj@lyx.org>
109 * src/lyx_cb.C (addNewlineAndDepth): changed to use string::append.
111 * src/support/lyxstring.C (append): fixed something that must be a
112 bug, rep->assign was used instead of rep->append.
114 * src/support/Makefile.am (libsupport_a_SOURCES): added LIstream.h
117 * src/lyxfunc.C (processKeyEvent): removed faulty line that made
118 lyx insert double chars. Fix spotted by Kayvan.
120 1999-10-23 Asger Alstrup Nielsen <alstrup@alstrup.galaxy.dk>
122 * Fixed the tth support. I messed up with the Emacs patch apply feature
123 and omitted the changes in lyxrc.C.
125 1999-10-22 Juergen Vigna <jug@sad.it>
127 * src/insets/figinset.C (CallbackFig): Just changed the defines a bit.
129 * src/lyx_cb.C (MenuInsertRef) +
130 * src/lyx_gui.C (create_forms): Inserted fl_set_form_minsize so that
131 the form cannot be resized under it limits (fixes a segfault)
133 * src/lyx.C (create_form_form_ref) +
134 * forms/lyx.fd: Changed Gravity on name input field so that it is
137 1999-10-22 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
139 * configure.in: use LYX_CXX_STL_MODERN_STREAMS; check for headers
140 <ostream> and <istream>.
142 * acinclude.m4 (LYX_CXX_STL_MODERN_STREAMS): new test. Checks
143 whether <fstream> provides the latest standard features, or if we
144 have an oldstyle library (like in egcs).
145 (LYX_CXX_STL_STRING): fix the test.
147 * src/support/DebugStream.{C,h}: use L{I,O}stream.h and condition the
148 code on MODERN_STL_STREAM.
150 * src/support/lyxstring.h: use L{I,O}stream.h.
152 * src/support/L{I,O}stream.h: new files, designed to setup
153 correctly streams for our use
154 - includes the right header depending on STL capabilities
155 - puts std::ostream and std::endl (for LOStream.h) or
156 std::istream (LIStream.h) in toplevel namespace.
158 1999-10-22 Lars Gullik Bjønnes <larsbj@lyx.org>
160 * src/insets/figinset.C: added ifdef guards around the fl_free
161 code that jug commented out. Now it is commented out when
162 compiling with XForms == 0.89.
164 * src/support/lyxstring.C: moved the definition of lyxstring::Srep
165 to lyxstring.C, and only keep a forward declaration in
166 lyxstring.h. Simplifies the header file a bit and should help a
167 bit on compile time too. Also changes to Srep will not mandate a
168 recompile of code just using string.
169 (~lyxstring): definition moved here since it uses srep.
170 (size): definition moved here since it uses srep.
172 * src/support/lyxstring.h: removed a couple of "inline" that should
175 1999-10-21 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
177 * src/insets/inseturl.C (C_InsetUrl_CloseUrlCB): forgot to pass
180 1999-10-21 Juergen Vigna <jug@sad.it>
182 * src/table.C (SetPWidth): Just a small fix so the alignment is not
183 set to left if I just remove the width entry (or it is empty).
185 * src/text2.C (SetCursorIntern): Fixed a bug calculating to use wrong
186 paragraph when having dummy paragraphs.
188 1999-10-20 Juergen Vigna <jug@sad.it>
190 * src/insets/figinset.C: just commented some fl_free_form calls
191 and added warnings so that this calls should be activated later
192 again. This avoids for now a segfault, but we have a memory leak!
194 * src/lyxfunc.C (processKeyEvent) (Dispatch): changed
195 'const char * argument' to 'string argument', this should
196 fix some Asserts() in lyxstring.C.
198 * src/lyxfunc.h: Removed the function argAsString(const char *)
199 as it is not used anymore.
201 1999-10-20 Lars Gullik Bjønnes <larsbj@lyx.org>
203 * src/support/lyxstring.C (helper): changed to use
204 sizeof(object->rep->ref).
205 (operator>>): changed to use a pointer instead.
207 * src/support/lyxstring.h: changed const reference & to value_type
208 const & lets see if that helps.
210 1999-10-19 Lars Gullik Bjønnes <larsbj@lyx.org>
212 * Makefile.am (rpmdist): fixed to have non static package and
215 * src/support/lyxstring.C: removed the compilation guards
217 * src/vspace.C (nextToken): use i + 1 instead of ++i. Maks things
220 * src/support/Makefile.am (LYXSTRING): bruker USE_LYXSTRING for
221 conditional compile of lyxstring.Ch
223 * acinclude.m4 (LYX_CXX_STL_STRING): new and improved, still a
224 stupid check, but it is a lot better than the bastring hack.
225 (LYX_CXX_STL_STRING): bruker nå AM_CONDITIONAL(USE_LYXSTRING
227 * several files: changed string::erase into string::clear. Not
230 * src/chset.C (encodeString): use a char temporary instead
232 * src/table.C (TexEndOfCell): added tostr around
233 column_of_cell(fcell+i)+1 and around right_column_of_cell(fcell+i)+1
234 (TexEndOfCell): ditto
235 (TexEndOfCell): ditto
236 (TexEndOfCell): ditto
237 (DocBookEndOfCell): ditto
238 (DocBookEndOfCell): ditto
239 (DocBookEndOfCell): ditto
240 (DocBookEndOfCell): ditto
242 * src/paragraph.C (TeXEnvironment): added tostr around foot_count -1
244 * src/lyxfr1.C (SearchReplaceAllCB): added tostr around replace_count
246 * src/lyx_cb.C (MenuRunLaTeX): added tostr around ret
247 (MenuBuildProg): added tostr around ret
248 (MenuRunChktex): added tostr around ret
249 (DocumentApplyCB): added tostr around ret
251 * src/chset.C (encodeString): added tostr around t->ic
253 * src/buffer.C (makeLaTeXFile): added tostr around secnumdepth
254 (makeLaTeXFile): added tostr around tocdepth
255 (makeLaTeXFile): added tostr around ftcound - 1
257 * src/insets/insetbib.C (setCounter): added tostr around counter.
259 * src/support/lyxstring.h: added an operator+=(int) to catch more
262 * src/support/lyxstring.C (lyxstring): We DON'T allow NULL pointers.
263 (lyxstring): We DON'T allow NULL pointers.
265 1999-10-19 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
267 * src/mathed/math_macro.C (MathMacroArgument::Write,
268 MathMacroTemplate::WriteDef): add tostr() around macro arg numbers
269 when writing them out.
271 * src/LString.C: remove, since it is not used anymore.
273 * src/support/lyxstring.C: condition the content to
274 USE_INCLUDED_STRING macro.
276 * src/mathed/math_symbols.C, src/support/lstrings.C,
277 src/support/lyxstring.C: add `using' directive to specify what
278 we need in <algorithm>. I do not think that we need to
279 conditionalize this, but any thought is appreciated.
281 * many files: change all callback functions to "C" linkage
282 functions to please strict C++ compilers like DEC cxx 6.1 in mode
283 strict_ansi. Those who were static are now global.
284 The case of callbacks which are static class members is
285 trickier, since we have to make C wrappers around them (see
286 InsetError, InsetInfo and InsetUrl). The same holds for friends. I
287 did not finish this yet, since it defeats the purpose of
288 encapsulation, and I am not sure what the best route is.
290 1999-10-19 Juergen Vigna <jug@sad.it>
292 * src/support/lyxstring.C (lyxstring): we permit to have a null
293 pointer as assignment value and just don't assign it.
295 * src/vspace.C (nextToken): corrected this function substituting
296 find_first(_not)_of with find_last_of.
298 * src/TableLayout.C (UpdateLayoutTable) (TableOptionsCB)
299 (TableOptCloseCB) (TableSpeCloseCB):
300 inserted fl_set_focus call for problem with fl_hide_form() in
303 1999-10-19 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
305 * src/lyx_cb.C (LayoutsCB): fix bug where int was added to a
308 1999-10-18 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
310 * src/lyxrc.C (Read): RC_PRINTEXSTRAOPTIONS now uses
311 LyXLex::next() and not eatline() to get its argument.
313 1999-10-16 Lars Gullik Bjønnes <larsbj@lyx.org>
315 * Makefile.am (rpmdist): added a rpmdist target
317 * lib/reLyX/Makefile.am: added RelyxFigure.pm and Verbatim.pm as
318 per Kayvan's instructions.
320 1999-10-15 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
322 * src/Makefile.am: add a definition for localedir, so that locales
323 are found after installation (Kayvan)
325 1999-10-14 Lars Gullik Bjønnes <larsbj@lyx.org>
327 * development/.cvsignore: new file.
329 1999-10-14 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
331 * acinclude.m4 (LYX_CXX_CHEADERS): New macro. Checks whether the
332 C++ compiler provides wrappers for C headers and use our alternate
335 * configure.in: use LYX_CXX_CHEADERS.
337 * src/cheader/: new directory, populated with cname headers from
338 libstdc++-2.8.1. They are a bit old, but probably good enough for
339 what we want (support compilers who lack them).
341 * src/insets/Makefile.am, src/mathed/Makefile.am: remove src/support
342 from includes. It turns out is was stupid.
344 1999-10-14 Lars Gullik Bjønnes <larsbj@lyx.org>
346 * lib/Makefile.am (install-data-local): forgot a ';'
347 (install-data-local): forgot a '\'
348 (libinstalldirs): needed after all. reintroduced.
350 1999-10-13 Lars Gullik Bjønnes <larsbj@lyx.org>
352 * configure.in (AC_OUTPUT): added lyx.spec
354 * development/lyx.spec: removed file
356 * development/lyx.spec.in: new file
358 * po/*.po: merged with lyx.pot becuase of make distcheck
360 * lib/Makefile.am (dist-hook): added dist-hook so that
361 documentation files will be included when doing a make
362 dist/distdir/distcheck. Requires cvs export -r HEAD lyxdoc to run.
363 (pkgdata_SCRIPTS): added configure.cmd for now, we can use som
365 more: tried to make install do the right thing, exclude CVS dirs
368 * src/LaTeXLog.C (ShowLatexLog): reordered som statements so that
369 Path would fit in more nicely.
371 * all files that used to use pathstack: uses now Path instead.
372 This change was a lot easier than expected.
374 * src/support/path.h: new file
376 * src/support/Makefile.am (libsupport_a_SOURCES): added path.h
378 * src/Makefile.am (lyx_SOURCES): removed pathstack.[Ch]
380 * src/support/lyxstring.C (getline): Default arg was given for
383 * Configure.cmd: removed file
385 1999-10-13 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
387 * src/support/DebugStream.[Ch]: remove the explicit std:: before
388 streams classes and types, add the proper 'using' statements when
389 MODERN_STL is defined.
391 * src/debug.h: move the << operator definition after the inclusion
394 * src/support/filetools.C: include "LAssert.h", which is needed
397 * src/insets/Makefile.am, src/mathed/Makefile.am: add src/support
400 * src/lyxfont.h, src/commandtags.h, src/mathed/math_defs.h:
401 include "debug.h" to define a proper ostream.
403 1999-10-12 Asger Alstrup Nielsen <alstrup@alstrup.galaxy.dk>
405 * src/sys*: Cleaned up the Systemcall stuff a bit. Added "kill(int)"
406 method to the SystemCall class which can kill a process, but it's
407 not fully implemented yet.
409 * src/*.C: Changed Systemcalls::Startscript() to startscript()
411 * src/support/FileInfo.h: Better documentation
413 * src/lyxfunc.C: Added support for buffer-export html
415 * src/menus.C: Added Export->As HTML...
417 * lib/bind/*.bind: Added short-cut for buffer-export html
419 * src/lyxrc.*: Added support for new \tth_command
421 * lib/lyxrc.example: Added stuff for new \tth_command
423 1999-10-12 Lars Gullik Bjønnes <larsbj@lyx.org>
425 * lib/Makefile.am (IMAGES): removed images/README
426 (pkgdata_SCRIPTS): use this instead of bin_SCRIPTS to that it
427 installes in correct place. Check permisions is installed
430 * src/LaTeX.C: some no-op changes moved declaration of some
433 * src/LaTeX.h (LATEX_H): changed include guard name
435 1999-10-12 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
437 * lib/reLyX/Makefile.am: install noweb2lyx.
439 * lib/Makefile.am: install configure.
441 * lib/reLyX/configure.in: declare a config aux dir; set package
442 name to lyx (not sure what the best solution is); generate noweb2lyx.
444 * lib/layouts/egs.layout: fix the bibliography layout.
446 1999-10-08 Jürgen Vigna <jug@sad.it>
448 * src/support/filetools.C (FileOpenSearch): Fixed a bug where
449 when in the PATH was something like /usr/bin;;/bin (note: the ;;)
450 it returned without continuing to search the path.
452 1999-10-07 Lars Gullik Bjønnes <larsbj@lyx.org>
454 * src/insets/insetquotes.C (Draw): Simplified a gread deal. This
455 also fixes a bug. It is not allowed to do tricks with std::strings
456 like: string a("hei"); &a[e]; this will not give what you
457 think... Any reason for the complexity in this func?
459 1999-10-06 Asger Alstrup Nielsen <alstrup@diku.dk>
461 * Updated README and INSTALL a bit, mostly to check that my
462 CVS rights are correctly set up.
464 1999-10-06 Lars Gullik Bjønnes <larsbj@lyx.org>
466 * src/support/lyxstring.C (helper): removed bogus Assert. strlen
467 does not allow '\0' chars but lyxstring and std::string does.
469 1999-10-05 Lars Gullik Bjønnes <larsbj@lyx.org>
471 * autogen.sh (AUTOCONF): let the autogen script create the
472 POTFILES.in file too. POTFILES.in should perhaps now not be
473 included in the cvs module.
475 * some more files changed to use C++ includes instead of C ones.
477 * src/filedlg.C (Reread): fixed a bug wrt Time. It was appended
479 (Reread): added tostr to nlink. buggy output otherwise.
480 (Reread): added a string() around szMode when assigning to Buffer,
481 without this I got a log of garbled info strings.
483 * acconfig.h: commented out the PTR_AS_INT macros. They should not
486 * I have added several ostream & operator<<(ostream &, some_type)
487 functions. This has been done to avoid casting and warnings when
488 outputting enums to lyxerr. This as thus eliminated a lot of
489 explicit casts and has made the code clearer. Among the enums
490 affected: kb_action, InsetLatexAccent::ACCENT_TYPE, a couple of
491 mathed enums, some font enum the Debug::type enum.
493 * src/support/lyxstring.h (clear): missing method. equivalent of
496 * all files that contained "stderr": rewrote constructs that used
497 stderr to use lyxerr instead. (except bmtable)
499 * src/support/DebugStream.h (level): and the passed t with
500 Debug::ANY to avoid spurious bits set.
502 * src/debug.h (Debug::type value): made it accept strings of the
505 * configure.in (Check for programs): Added a check for kpsewhich,
506 the latex generation will use this later to better the dicovery of
509 * src/BufferView.C (create_view): we don't need to cast this to
510 (void*) that is done automatically.
511 (WorkAreaButtonPress): removed some dead code.
513 1999-10-05 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
515 * src/minibuffer.C (Init): make sure that the "Welcome to LyX!"
516 is not overwritten when translated (David Sua'rez de Lis).
518 * lib/CREDITS: Added David Sua'rez de Lis
520 * lib/reLyX/configure.in: setup LYX_DIR correctly in reLyX.
522 * src/bufferparams.C (BufferParams): default input encoding is now
525 * acinclude.m4 (cross_compiling): comment out macro
526 LYX_GXX_STRENGTH_REDUCE.
528 * acconfig.h: make sure that const is not defined (to empty) when
529 we are compiling C++. Remove commented out code using SIZEOF_xx
532 * configure.in : move the test for const and inline as late as
533 possible so that these C tests do not interefere with C++ ones.
534 Remove the call to LYX_GXX_STRENGTH_REDUCE, since its usefulness
537 1999-10-04 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
539 * src/table.C (getDocBookAlign): remove bad default value for
542 * src/menus.C (ShowFileMenu): add a missing tostr() for lastfiles
544 (ShowFileMenu2): ditto.
546 * lib/reLyX/.cvsignore: add configure and aclocal.m4 to the list
549 1999-10-04 Lars Gullik Bjønnes <larsbj@lyx.org>
551 * Most files: finished the change from the old error code to use
552 DebugStream for all lyxerr debugging. Only minor changes remain
553 (e.g. the setting of debug levels using strings instead of number)
555 1999-10-02 Lars Gullik Bjønnes <larsbj@lyx.org>
557 * src/layout.C (Add): Changed to use compare_no_case instead of
560 * src/FontInfo.C: changed loop variable type too string::size_type.
562 1999-10-01 Lars Gullik Bjønnes <larsbj@lyx.org>
564 * src/support/Makefile.am: added -I${srcdir}/../ to INCLUDES and
565 set ETAGS_ARGS to --c++
567 1999-09-30 Lars Gullik Bjønnes <larsbj@lyx.org>
569 * src/table.C (DocBookEndOfCell): commented out two unused variables
571 * src/paragraph.C: commented out four unused variables.
573 * src/lyx_cb.C (TocUpdateCB): moved variable i and added a new i
574 insed a if clause with type string::size_type.
576 * src/lyxfr1.C (IsSearchStringInText): changed iSrch from int to
579 * src/lyxfunc.C (Dispatch): use string::size_type as loop variable.
581 * src/lyx_cb.C (ReplaceWord): use string::size_type as loop
582 variable, also changed loop to go from 0 to lenght + 1, instead of
583 -1 to length. This should be correct.
585 * src/LaTeX.C (scanError): use string::size_type as loop variable
588 * src/BufferView.C (WorkAreaButtonPress): moved #if 0 up two lines
589 (l.896) since y_tmp and row was not used anyway.
591 * src/insets/insetref.C (escape): use string::size_type as loop
594 * src/insets/insetquotes.C (Width): use string::size_type as loop
596 (Draw): use string::size_type as loop variable type.
598 * src/insets/insetlatexaccent.C (checkContents): use
599 string::size_type as loop variable type.
601 * src/insets/insetlabel.C (escape): use string::size_type as loop
604 * src/insets/insetinfo.C: added an extern for current_view.
606 * src/insets/insetcommand.C (scanCommand): use string::size_type
607 as loop variable type.
609 * most files: removed the RCS tags. With them we had to recompile
610 a lot of files after a simple cvs commit. Also we have never used
611 them for anything meaningful.
613 * most files: tags-query-replace NULL 0. As adviced several plases
614 we now use "0" instead of "NULL" in our code.
616 * src/support/filetools.C (SpaceLess): use string::size_type as
619 1999-09-29 Lars Gullik Bjønnes <larsbj@lyx.org>
621 * src/paragraph.C: fixed up some more string stuff.
623 1999-09-28 Lars Gullik Bjønnes <larsbj@lyx.org>
625 * src/support/filetools.h: make modestr a std::string.
627 * src/filetools.C (GetEnv): made ch really const.
629 * src/lyxlib.h: removed the Maximum and Minimum inline functions,
630 made code that used these use max/min from <algorithm> instead.
632 * changed several c library include files to their equivalent c++
633 library include files. All is not changed yet.
635 * created a support subdir in src, put lyxstring and lstrings
636 there + the extra files atexit, fileblock, strerror. Created
637 Makefile.am. edited configure.in and src/Makefile.am to use this
638 new subdir. More files moved to support.
640 * imported som of the functions from repository lyx, filetools
642 * ran tags-query-replace on LString -> string, corrected the bogus
643 cases. Tried to make use of lstrings.[hC], debugged a lot. There
644 is still some errors in there. This is errors where too much or
645 too litle get deleted from strings (string::erase, string::substr,
646 string::replace), there can also be some off by one errors, or
647 just plain wrong use of functions from lstrings. Viewing of quotes
650 * LyX is now running fairly well with string, but there are
651 certainly some bugs yet (see above) also string is quite different
652 from LString among others in that it does not allow null pointers
653 passed in and will abort if it gets any.
655 * Added the revtex4 files I forgot when setting up the repository.
657 1999-09-27 Lars Gullik Bjønnes <larsbj@lyx.org>
659 * All over: Tried to clean everything up so that only the files
660 that we really need are included in the cvs repository.
661 * Switched to use automake.
662 * Generaton of reLyX is not perfect, LYX_DIR does not get substituted.
663 * Install has not been checked.
665 1999-09-22 Lars Gullik Bjønnes <larsbj@lyx.org>
667 * po/pt.po: Three errors:
668 l.533 and l.538 format specification error
669 l. 402 duplicate entry, I just deleted it.