source: trunk/UTILITAIRE/oups.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5; NAME:oups
6;
7; PURPOSE: Sorte de UNDO:
8; permet de refaire toute la serie de dessin depuis
9; l''ouverture de la derniere fenetre sans reexecuter la derniere
10; commande. cf. je fais un dessin avec 10 plt dessus au 10 eme je me
11; plante, un coup de @oups et je peux refaire mon plt rate!
12;
13; CATEGORY: pour faciliter les dessins
14;
15; CALLING SEQUENCE: @oups
16;
17; SIDE EFFECTS: compatible avec @ps @vzoom text_box...
18;
19; RESTRICTIONS:
20;
21; EXAMPLE:
22;
23; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
24;
25;-
26;------------------------------------------------------------
27;------------------------------------------------------------
28;------------------------------------------------------------
29;------------------------------------------------------------
30; il faut fermer le journal!
31;------------------------------------------------------------
32 journal
33; on recupere le journal sous la forme d''un vecteur de string:
34   vectjournal = getfile(homedir+'idlsave.pro')
35; on coupe la derniere ligne qui est oups
36   vectjournal = vectjournal[0:n_elements(vectjournal)-2 ]
37;------------------------------------------------------------
38; on le corrige si besoin est...
39;------------------------------------------------------------
40for i = 0, n_elements(vectjournal)-1 do $
41 if strpos(vectjournal[i],'text_box' ) EQ -1 then $
42 vectjournal[i] = strtrim(strcompress(vectjournal[i]), 2)
43;2 lignes sont identiques ??
44for i = 0, n_elements(vectjournal)-2 do $
45 if vectjournal[i] EQ vectjournal[i+1] then vectjournal[i] = ' '
46
47for i = 0, n_elements(vectjournal)-1 do BEGIN & $
48 if strpos(vectjournal[i],'oups' ) NE -1 $
49 OR strpos(vectjournal[i],'Syntax error' ) NE -1 $
50 OR strpos(vectjournal[i],'Illegal character' ) NE -1 $
51 then BEGIN vectjournal[i] = ' ' & vectjournal[i-1] = ' ' & endif & $
52 if strpos(strtrim(vectjournal[i], 1),'retall' ) EQ 0 $
53 OR strpos(vectjournal[i],'@oups' ) NE -1 $
54 OR strpos(vectjournal[i],'@ps' ) NE -1 $
55 OR strpos(vectjournal[i],'@vzoom' ) NE -1 $
56 OR strpos(vectjournal[i],'help' ) NE -1 $
57 OR strpos(vectjournal[i],'print' ) NE -1 $
58 then  vectjournal[i] = ' ' & $
59 if strpos(vectjournal[i],'text_box' ) NE -1 then $
60 vectjournal[i] = vectjournal[i]+strmid(vectjournal[i+1], 1) & endfor
61
62
63;
64; on vire la derniere ligne pour tout reexecuter sauf la derniere commande
65;
66 IF strpos(vectjournal[n_elements(vectjournal)-1],';,pos=[' ) NE -1 then $
67 vectjournal[n_elements(vectjournal)-2] = '' $
68 ELSE vectjournal[n_elements(vectjournal)-1] = ''
69; on reecrit idlsave.pro
70putfile, homedir+'idlsave.pro', vectjournal
71; on compile puis applique idlsave
72cd, homedir
73@idlsave   
74; le journal vient d'etre reouvert, et on y met les elements de
75; vectjournal
76for i = 0, n_elements(vectjournal)-1 DO $
77printf, !journal, vectjournal[i]
78     
79
80
Note: See TracBrowser for help on using the repository browser.