Bug 10932 fixed: Startup directory was not saved through the desktop 29/13929/3
Calixte DENIZET [Thu, 6 Mar 2014 13:32:39 +0000 (14:32 +0100)]
Change-Id: Ib34daa89d84df3d91d83e9742fb54a212df64ba3

14 files changed:
scilab/CHANGES_5.5.X
scilab/modules/console/etc/XConfiguration-general.xml
scilab/modules/console/etc/XConfiguration-general.xsl
scilab/modules/console/locales/console.pot
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/src/c/InitializePreferences.c
scilab/modules/core/src/c/saveCWDInPreferences.c [new file with mode: 0644]
scilab/modules/core/src/c/saveCWDInPreferences.h [new file with mode: 0644]
scilab/modules/core/src/c/sciquit.c
scilab/modules/fileio/preferences_Import.def
scilab/modules/fileio/src/c/dlManager.c
scilab/modules/preferences/includes/getScilabPreference.h
scilab/modules/preferences/src/c/getScilabPreference.c

index d29f642..9ceb293 100644 (file)
@@ -399,6 +399,8 @@ Scilab Bug Fixes
 
 * Bug #10856 fixed - analpf did not return the right result.
 
+* Bug #10932 fixed - Startup directory was not saved/restored in preferences.
+
 * Bug #10936 fixed - Scilab hung with invalid strf in plot2d.
 
 * Bug #10998 fixed - matrix*hypermatrix and hypermatrix*matrix operations failed.
index fc79dd0..35ded47 100644 (file)
@@ -25,6 +25,7 @@
             <language code="uk_UA" desc="_(Ukrainian)"/>
         </languages>
         <java-heap-memory heap-size="256"/>
+        <startup title="_(Start-up directory)" use="current" default="" previous=""/>
     </body>
     <confirmation-dialogs title="_(Confirmation dialogs)"> 
         <body>
index e866a7d..bd317f9 100644 (file)
                 <Panel gridx="2" gridy="2" weightx="1" fill="both"/>
             </Grid>
         </Title>
-        
+    </xsl:template>
+    
+    <xsl:template match="startup">
+        <VSpace height="10"/>
+        <Title text="_(Start-up directory)">
+            <Grid>
+                <Radiobutton value="{@use}" expected-value="current" listener="ActionListener" text="_(Use current working directory)" gridx="1" gridy="1" fill="none" weightx="0" anchor="west">
+                    <actionPerformed choose="use">
+                        <xsl:call-template name="context"/>
+                    </actionPerformed>
+                </Radiobutton>
+                
+                <Radiobutton value="{@use}" expected-value="previous" listener="ActionListener" text="_(Use previous working directory)" gridx="1" gridy="2" fill="none" weightx="0" anchor="west">
+                    <actionPerformed choose="use">
+                        <xsl:call-template name="context"/>
+                    </actionPerformed>
+                </Radiobutton>
+                
+                <Radiobutton value="{@use}" expected-value="default" listener="ActionListener" text="_(Use default directory)" gridx="1" gridy="3" fill="none" weightx="0" anchor="west">
+                    <actionPerformed choose="use">
+                        <xsl:call-template name="context"/>
+                    </actionPerformed>
+                </Radiobutton>
+                
+                <Entry gridx="2" gridy="3" weightx="1" anchor="above_baseline"
+                       listener="EntryListener"
+                       text="{@default}">
+                    <xsl:attribute name="enable">
+                        <xsl:if test="@use='default'">
+                            <xsl:text>true</xsl:text>
+                        </xsl:if>
+                    </xsl:attribute>
+                    <entryChanged choose="default">
+                        <xsl:call-template name="context"/>
+                    </entryChanged>
+                </Entry>
+            </Grid>
+        </Title>
     </xsl:template>
     
     <xsl:template match="tools">
index 9937662..a256289 100644 (file)
@@ -14,7 +14,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Revision-Date: 2014-03-06 10:33+0100\n"
+"Revision-Date: 2014-03-06 15:13+0100\n"
 
 # File: sci_gateway/c/sci_clc.c, line: 41
 # File: sci_gateway/c/sci_lines.c, line: 206
@@ -241,1006 +241,1027 @@ msgid "Ukrainian"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 292
-# File: scilab_fake_localization_file.c, line: 638
+# File: scilab_fake_localization_file.c, line: 291
+# File: scilab_fake_localization_file.c, line: 639
+msgid "Start-up directory"
+msgstr ""
+
+#
+# File: scilab_fake_localization_file.c, line: 293
+# File: scilab_fake_localization_file.c, line: 676
 msgid "Confirmation dialogs"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 295
+# File: scilab_fake_localization_file.c, line: 296
 msgid "Warn before exiting Scilab"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 296
+# File: scilab_fake_localization_file.c, line: 297
 msgid "Warn before deleting Command History items"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 297
+# File: scilab_fake_localization_file.c, line: 298
 msgid "Warn before clearing the Console"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 301
+# File: scilab_fake_localization_file.c, line: 302
 msgid "Desktop layout"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 304
+# File: scilab_fake_localization_file.c, line: 305
 msgid "Integrated"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 305
+# File: scilab_fake_localization_file.c, line: 306
 msgid "Simple"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 309
+# File: scilab_fake_localization_file.c, line: 310
 msgid "Shortcuts"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 313
+# File: scilab_fake_localization_file.c, line: 314
 msgid "Cut or interrupt"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 314
+# File: scilab_fake_localization_file.c, line: 315
 msgid "Copy or interrupt"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 315
-# File: scilab_fake_localization_file.c, line: 384
-# File: scilab_fake_localization_file.c, line: 463
+# File: scilab_fake_localization_file.c, line: 316
+# File: scilab_fake_localization_file.c, line: 385
+# File: scilab_fake_localization_file.c, line: 464
 msgid "Select all"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 316
+# File: scilab_fake_localization_file.c, line: 317
 msgid "Line beginning"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 317
+# File: scilab_fake_localization_file.c, line: 318
 msgid "Line end"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 318
+# File: scilab_fake_localization_file.c, line: 319
 msgid "Previous char"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 319
+# File: scilab_fake_localization_file.c, line: 320
 msgid "Delete next char"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 320
+# File: scilab_fake_localization_file.c, line: 321
 msgid "Delete previous char"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 321
+# File: scilab_fake_localization_file.c, line: 322
 msgid "Delete end of line"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 322
 # File: scilab_fake_localization_file.c, line: 323
+# File: scilab_fake_localization_file.c, line: 324
 msgid "Delete whole line"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 324
+# File: scilab_fake_localization_file.c, line: 325
 msgid "Delete last word"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 325
+# File: scilab_fake_localization_file.c, line: 326
 msgid "Previous console page"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 326
+# File: scilab_fake_localization_file.c, line: 327
 msgid "Next console page"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 327
+# File: scilab_fake_localization_file.c, line: 328
 msgid "Validate input"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 328
+# File: scilab_fake_localization_file.c, line: 329
 msgid "Clear console"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 329
+# File: scilab_fake_localization_file.c, line: 330
 msgid "Console box"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 330
 # File: scilab_fake_localization_file.c, line: 331
+# File: scilab_fake_localization_file.c, line: 332
 msgid "Completion"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 332
-# File: scilab_fake_localization_file.c, line: 334
+# File: scilab_fake_localization_file.c, line: 333
+# File: scilab_fake_localization_file.c, line: 335
 msgid "Previous history line"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 333
-# File: scilab_fake_localization_file.c, line: 335
+# File: scilab_fake_localization_file.c, line: 334
+# File: scilab_fake_localization_file.c, line: 336
 msgid "Next history line"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 336
+# File: scilab_fake_localization_file.c, line: 337
 msgid "Help Browser"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 337
 # File: scilab_fake_localization_file.c, line: 338
+# File: scilab_fake_localization_file.c, line: 339
 msgid "Console Search Field"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 339
-# File: scilab_fake_localization_file.c, line: 390
-# File: scilab_fake_localization_file.c, line: 461
+# File: scilab_fake_localization_file.c, line: 340
+# File: scilab_fake_localization_file.c, line: 391
+# File: scilab_fake_localization_file.c, line: 462
 msgid "Paste"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 340
+# File: scilab_fake_localization_file.c, line: 341
 msgid "Open a file"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 341
+# File: scilab_fake_localization_file.c, line: 342
 msgid "Load environment"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 342
+# File: scilab_fake_localization_file.c, line: 343
 msgid "Save environment"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 343
+# File: scilab_fake_localization_file.c, line: 344
 msgid "Quit"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 344
+# File: scilab_fake_localization_file.c, line: 345
 msgid "Execute"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 345
+# File: scilab_fake_localization_file.c, line: 346
 msgid "Empty clipboard"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 346
+# File: scilab_fake_localization_file.c, line: 347
 msgid "Change current directory"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 347
+# File: scilab_fake_localization_file.c, line: 348
 msgid "Display current directory"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 348
-# File: scilab_fake_localization_file.c, line: 437
+# File: scilab_fake_localization_file.c, line: 349
+# File: scilab_fake_localization_file.c, line: 438
 msgid "Page setup"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 349
-# File: scilab_fake_localization_file.c, line: 404
-# File: scilab_fake_localization_file.c, line: 453
+# File: scilab_fake_localization_file.c, line: 350
+# File: scilab_fake_localization_file.c, line: 405
+# File: scilab_fake_localization_file.c, line: 454
 msgid "Print"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 350
+# File: scilab_fake_localization_file.c, line: 351
 msgid "Preferences"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 351
+# File: scilab_fake_localization_file.c, line: 352
 msgid "Show/Hide toolbar"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 352
+# File: scilab_fake_localization_file.c, line: 353
 msgid "Clear history"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 353
+# File: scilab_fake_localization_file.c, line: 354
 msgid "Resume"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 354
+# File: scilab_fake_localization_file.c, line: 355
 msgid "Abort"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 355
+# File: scilab_fake_localization_file.c, line: 356
 msgid "Interrupt"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 356
+# File: scilab_fake_localization_file.c, line: 357
 msgid "Launch SciNotes"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 357
+# File: scilab_fake_localization_file.c, line: 358
 msgid "Launch Xcos"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 358
+# File: scilab_fake_localization_file.c, line: 359
 msgid "Matlab to Scilab Translator"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 359
+# File: scilab_fake_localization_file.c, line: 360
 msgid "Module manager"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 360
+# File: scilab_fake_localization_file.c, line: 361
 msgid "Variable Browser"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 361
+# File: scilab_fake_localization_file.c, line: 362
 msgid "Command History"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 362
+# File: scilab_fake_localization_file.c, line: 363
 msgid "File Browser"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 363
+# File: scilab_fake_localization_file.c, line: 364
 msgid "Demonstrations"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 364
+# File: scilab_fake_localization_file.c, line: 365
 msgid "Open Scilab website"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 365
+# File: scilab_fake_localization_file.c, line: 366
 msgid "Open Online Help"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 366
+# File: scilab_fake_localization_file.c, line: 367
 msgid "Open Scilab wiki"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 367
+# File: scilab_fake_localization_file.c, line: 368
 msgid "Open ATOMS website"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 368
+# File: scilab_fake_localization_file.c, line: 369
 msgid "Open File Exchange website"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 369
+# File: scilab_fake_localization_file.c, line: 370
 msgid "Open Mailing lists"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 370
+# File: scilab_fake_localization_file.c, line: 371
 msgid "Open Forge website"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 371
+# File: scilab_fake_localization_file.c, line: 372
 msgid "Open Bugzilla"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 372
+# File: scilab_fake_localization_file.c, line: 373
 msgid "About Scilab"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 375
+# File: scilab_fake_localization_file.c, line: 376
 msgid "Auto complete (, [,..."
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 376
+# File: scilab_fake_localization_file.c, line: 377
 msgid "Auto complete keyword"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 377
+# File: scilab_fake_localization_file.c, line: 378
 msgid "Generate Help prototype"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 378
+# File: scilab_fake_localization_file.c, line: 379
 msgid "Tabify"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 379
+# File: scilab_fake_localization_file.c, line: 380
 msgid "Untabify"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 380
+# File: scilab_fake_localization_file.c, line: 381
 msgid "Indent"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 381
+# File: scilab_fake_localization_file.c, line: 382
 msgid "Comment"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 382
+# File: scilab_fake_localization_file.c, line: 383
 msgid "Uncomment"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 383
+# File: scilab_fake_localization_file.c, line: 384
 msgid "Remove trailing whites"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 385
+# File: scilab_fake_localization_file.c, line: 386
 msgid "Select block"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 386
+# File: scilab_fake_localization_file.c, line: 387
 msgid "Open current tab in a new window"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 387
+# File: scilab_fake_localization_file.c, line: 388
 msgid "Export current tab in a new window"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 388
-# File: scilab_fake_localization_file.c, line: 460
+# File: scilab_fake_localization_file.c, line: 389
+# File: scilab_fake_localization_file.c, line: 461
 msgid "Copy"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 389
-# File: scilab_fake_localization_file.c, line: 459
+# File: scilab_fake_localization_file.c, line: 390
+# File: scilab_fake_localization_file.c, line: 460
 msgid "Cut"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 391
+# File: scilab_fake_localization_file.c, line: 392
 msgid "Paste a column"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 392
+# File: scilab_fake_localization_file.c, line: 393
 msgid "Repeat selection on column"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 393
-# File: scilab_fake_localization_file.c, line: 457
+# File: scilab_fake_localization_file.c, line: 394
+# File: scilab_fake_localization_file.c, line: 458
 msgid "Undo"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 394
-# File: scilab_fake_localization_file.c, line: 458
+# File: scilab_fake_localization_file.c, line: 395
+# File: scilab_fake_localization_file.c, line: 459
 msgid "Redo"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 395
+# File: scilab_fake_localization_file.c, line: 396
 msgid "Copy as HTML with line number"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 396
+# File: scilab_fake_localization_file.c, line: 397
 msgid "New"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 397
-# File: scilab_fake_localization_file.c, line: 448
+# File: scilab_fake_localization_file.c, line: 398
+# File: scilab_fake_localization_file.c, line: 449
 msgid "Open"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 398
+# File: scilab_fake_localization_file.c, line: 399
 msgid "Open URL"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 399
+# File: scilab_fake_localization_file.c, line: 400
 msgid "Open source"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 400
-# File: scilab_fake_localization_file.c, line: 450
-# File: scilab_fake_localization_file.c, line: 510
+# File: scilab_fake_localization_file.c, line: 401
+# File: scilab_fake_localization_file.c, line: 451
+# File: scilab_fake_localization_file.c, line: 511
 msgid "Save"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 401
-# File: scilab_fake_localization_file.c, line: 451
+# File: scilab_fake_localization_file.c, line: 402
+# File: scilab_fake_localization_file.c, line: 452
 msgid "Save as"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 402
+# File: scilab_fake_localization_file.c, line: 403
 msgid "Reload"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 403
+# File: scilab_fake_localization_file.c, line: 404
 msgid "Print preview"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 405
-# File: scilab_fake_localization_file.c, line: 454
+# File: scilab_fake_localization_file.c, line: 406
+# File: scilab_fake_localization_file.c, line: 455
 msgid "Close"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 406
+# File: scilab_fake_localization_file.c, line: 407
 msgid "Exit"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 407
+# File: scilab_fake_localization_file.c, line: 408
 msgid "To lower case"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 408
+# File: scilab_fake_localization_file.c, line: 409
 msgid "To upper case"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 409
+# File: scilab_fake_localization_file.c, line: 410
 msgid "Capitalize"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 410
+# File: scilab_fake_localization_file.c, line: 411
 msgid "Help on keyword"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 411
+# File: scilab_fake_localization_file.c, line: 412
 msgid "Load in Scilab"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 412
+# File: scilab_fake_localization_file.c, line: 413
 msgid "Execute in Scilab"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 413
+# File: scilab_fake_localization_file.c, line: 414
 msgid "Evaluate selection"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 414
+# File: scilab_fake_localization_file.c, line: 415
 msgid "Save and execute"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 415
+# File: scilab_fake_localization_file.c, line: 416
 msgid "Save and execute all"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 416
+# File: scilab_fake_localization_file.c, line: 417
 msgid "Find"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 417
+# File: scilab_fake_localization_file.c, line: 418
 msgid "Find next"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 418
+# File: scilab_fake_localization_file.c, line: 419
 msgid "Find previous"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 419
+# File: scilab_fake_localization_file.c, line: 420
 msgid "Incremental search"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 420
+# File: scilab_fake_localization_file.c, line: 421
 msgid "Set anchor"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 421
+# File: scilab_fake_localization_file.c, line: 422
 msgid "Remove anchor"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 422
+# File: scilab_fake_localization_file.c, line: 423
 msgid "Go to next anchor"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 423
+# File: scilab_fake_localization_file.c, line: 424
 msgid "Go to previous anchor"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 424
+# File: scilab_fake_localization_file.c, line: 425
 msgid "Start Code Navigator"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 425
+# File: scilab_fake_localization_file.c, line: 426
 msgid "Search word in file"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 426
+# File: scilab_fake_localization_file.c, line: 427
 msgid "Search files"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 427
+# File: scilab_fake_localization_file.c, line: 428
 msgid "Keyword completion"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 428
+# File: scilab_fake_localization_file.c, line: 429
 msgid "Help"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 429
+# File: scilab_fake_localization_file.c, line: 430
 msgid "About"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 430
+# File: scilab_fake_localization_file.c, line: 431
 msgid "Next tab"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 431
+# File: scilab_fake_localization_file.c, line: 432
 msgid "Previous tab"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 432
-# File: scilab_fake_localization_file.c, line: 462
+# File: scilab_fake_localization_file.c, line: 433
+# File: scilab_fake_localization_file.c, line: 463
 msgid "Delete"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 433
+# File: scilab_fake_localization_file.c, line: 434
 msgid "Next paragraph"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 434
+# File: scilab_fake_localization_file.c, line: 435
 msgid "Previous paragraph"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 435
+# File: scilab_fake_localization_file.c, line: 436
 msgid "Save all"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 436
+# File: scilab_fake_localization_file.c, line: 437
 msgid "Overwrite"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 438
+# File: scilab_fake_localization_file.c, line: 439
 msgid "Close all"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 439
+# File: scilab_fake_localization_file.c, line: 440
 msgid "Close all but this"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 440
+# File: scilab_fake_localization_file.c, line: 441
 msgid "Convert quote to double quote"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 441
+# File: scilab_fake_localization_file.c, line: 442
 msgid "Line numbering"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 442
+# File: scilab_fake_localization_file.c, line: 443
 msgid "Set the SciNotes font"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 443
+# File: scilab_fake_localization_file.c, line: 444
 msgid "Set the SciNotes colors"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 447
+# File: scilab_fake_localization_file.c, line: 448
 msgid "New diagram"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 449
+# File: scilab_fake_localization_file.c, line: 450
 msgid "Open file in Scilab current directory"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 452
+# File: scilab_fake_localization_file.c, line: 453
 msgid "Export"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 455
+# File: scilab_fake_localization_file.c, line: 456
 msgid "Quit Xcos"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 464
+# File: scilab_fake_localization_file.c, line: 465
 msgid "Invert selection"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 465
+# File: scilab_fake_localization_file.c, line: 466
 msgid "Block Parameters"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 466
+# File: scilab_fake_localization_file.c, line: 467
 msgid "Region to superblock"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 468
+# File: scilab_fake_localization_file.c, line: 469
 msgid "Zoom In"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 469
+# File: scilab_fake_localization_file.c, line: 470
 msgid "Zoom Out"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 470
+# File: scilab_fake_localization_file.c, line: 471
 msgid "Fit diagram to view"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 471
+# File: scilab_fake_localization_file.c, line: 472
 msgid "Normal 100%"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 472
+# File: scilab_fake_localization_file.c, line: 473
 msgid "Palette browser"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 473
+# File: scilab_fake_localization_file.c, line: 474
 msgid "Diagram browser"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 474
+# File: scilab_fake_localization_file.c, line: 475
 msgid "Viewport"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 475
+# File: scilab_fake_localization_file.c, line: 476
 msgid "Details"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 477
+# File: scilab_fake_localization_file.c, line: 478
 msgid "Setup"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 478
+# File: scilab_fake_localization_file.c, line: 479
 msgid "Execution trace and Debug"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 479
+# File: scilab_fake_localization_file.c, line: 480
 msgid "Set Context"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 480
+# File: scilab_fake_localization_file.c, line: 481
 msgid "Compile"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 481
+# File: scilab_fake_localization_file.c, line: 482
 msgid "Start"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 482
+# File: scilab_fake_localization_file.c, line: 483
 msgid "Stop"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 484
+# File: scilab_fake_localization_file.c, line: 485
 msgid "Rotate"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 485
+# File: scilab_fake_localization_file.c, line: 486
 msgid "Flip"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 486
+# File: scilab_fake_localization_file.c, line: 487
 msgid "Mirror"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 487
+# File: scilab_fake_localization_file.c, line: 488
 msgid "Show/Hide shadow"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 488
+# File: scilab_fake_localization_file.c, line: 489
 msgid "Left"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 489
+# File: scilab_fake_localization_file.c, line: 490
 msgid "Center"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 490
+# File: scilab_fake_localization_file.c, line: 491
 msgid "Right"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 491
+# File: scilab_fake_localization_file.c, line: 492
 msgid "Top"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 492
+# File: scilab_fake_localization_file.c, line: 493
 msgid "Middle"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 493
+# File: scilab_fake_localization_file.c, line: 494
 msgid "Bottom"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 494
+# File: scilab_fake_localization_file.c, line: 495
 msgid "Border Color"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 495
+# File: scilab_fake_localization_file.c, line: 496
 msgid "Fill Color"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 496
+# File: scilab_fake_localization_file.c, line: 497
 msgid "Horizontal"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 497
+# File: scilab_fake_localization_file.c, line: 498
 msgid "Straight"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 498
+# File: scilab_fake_localization_file.c, line: 499
 msgid "Vertical"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 499
+# File: scilab_fake_localization_file.c, line: 500
 msgid "Diagram background"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 500
+# File: scilab_fake_localization_file.c, line: 501
 msgid "Grid"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 502
+# File: scilab_fake_localization_file.c, line: 503
 msgid "Code generation"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 504
+# File: scilab_fake_localization_file.c, line: 505
 msgid "Xcos Help"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 505
+# File: scilab_fake_localization_file.c, line: 506
 msgid "Block Help"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 506
+# File: scilab_fake_localization_file.c, line: 507
 msgid "Xcos Demonstrations"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 507
+# File: scilab_fake_localization_file.c, line: 508
 msgid "About Xcos"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 513
+# File: scilab_fake_localization_file.c, line: 514
 msgid "Save variable"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 516
+# File: scilab_fake_localization_file.c, line: 517
 msgid "Save history"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 519
+# File: scilab_fake_localization_file.c, line: 520
 msgid "Save file"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 536
+# File: scilab_fake_localization_file.c, line: 537
 msgid "Environment"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 538
+# File: scilab_fake_localization_file.c, line: 539
 msgid "Floating point exception (ieee): "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 554
+# File: scilab_fake_localization_file.c, line: 555
 msgid "Printing format: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 568
+# File: scilab_fake_localization_file.c, line: 569
 msgid "Width: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 589
+# File: scilab_fake_localization_file.c, line: 590
 msgid "Language setting"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 591
+# File: scilab_fake_localization_file.c, line: 592
 msgid "Default language: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 606
-# File: scilab_fake_localization_file.c, line: 630
+# File: scilab_fake_localization_file.c, line: 607
+# File: scilab_fake_localization_file.c, line: 631
 msgid "(This requires a restart of Scilab)"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 616
+# File: scilab_fake_localization_file.c, line: 617
 msgid "Java Heap Memory"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 618
+# File: scilab_fake_localization_file.c, line: 619
 msgid "Select the memory (in MB) available in Java: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 658
+# File: scilab_fake_localization_file.c, line: 641
+msgid "Use current working directory"
+msgstr ""
+
+#
+# File: scilab_fake_localization_file.c, line: 647
+msgid "Use previous working directory"
+msgstr ""
+
+#
+# File: scilab_fake_localization_file.c, line: 653
+msgid "Use default directory"
+msgstr ""
+
+#
+# File: scilab_fake_localization_file.c, line: 696
 msgid "Desktop Layout"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 660
+# File: scilab_fake_localization_file.c, line: 698
 msgid "Select a layout"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 674
+# File: scilab_fake_localization_file.c, line: 712
 msgid "(Modify the layout requires to restart Scilab)"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 686
+# File: scilab_fake_localization_file.c, line: 724
 msgid "Save layout on exiting"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 691
+# File: scilab_fake_localization_file.c, line: 729
 msgid "Reset layout"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 701
+# File: scilab_fake_localization_file.c, line: 739
 msgid "Keys binding"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 704
+# File: scilab_fake_localization_file.c, line: 742
 msgid "Filter on action name: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 714
+# File: scilab_fake_localization_file.c, line: 752
 msgid "Component"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 726
+# File: scilab_fake_localization_file.c, line: 764
 msgid "Name: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 732
+# File: scilab_fake_localization_file.c, line: 770
 msgid "Description: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 738
+# File: scilab_fake_localization_file.c, line: 776
 msgid "Binding: "
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 770
+# File: scilab_fake_localization_file.c, line: 808
 msgid "Action name"
 msgstr ""
 
 #
-# File: scilab_fake_localization_file.c, line: 771
+# File: scilab_fake_localization_file.c, line: 809
 msgid "Key binding"
 msgstr ""
 
index ca37e04..d7372c4 100644 (file)
@@ -94,6 +94,7 @@ src/c/setieee.c \
 src/c/setlines.c \
 src/c/setformat.c \
 src/c/InitializePreferences.c \
+src/c/saveCWDInPreferences.c \
 src/c/sci_tools.c \
 src/c/getmaxMALLOC.c \
 src/c/sci_mem_alloc.c \
index 71b279a..5692f32 100644 (file)
@@ -260,6 +260,7 @@ am__objects_1 = src/c/libscicore_algo_la-inffic.lo \
        src/c/libscicore_algo_la-setlines.lo \
        src/c/libscicore_algo_la-setformat.lo \
        src/c/libscicore_algo_la-InitializePreferences.lo \
+       src/c/libscicore_algo_la-saveCWDInPreferences.lo \
        src/c/libscicore_algo_la-sci_tools.lo \
        src/c/libscicore_algo_la-getmaxMALLOC.lo \
        src/c/libscicore_algo_la-sci_mem_alloc.lo \
@@ -858,6 +859,7 @@ src/c/setieee.c \
 src/c/setlines.c \
 src/c/setformat.c \
 src/c/InitializePreferences.c \
+src/c/saveCWDInPreferences.c \
 src/c/sci_tools.c \
 src/c/getmaxMALLOC.c \
 src/c/sci_mem_alloc.c \
@@ -1459,6 +1461,8 @@ src/c/libscicore_algo_la-setformat.lo: src/c/$(am__dirstamp) \
        src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/libscicore_algo_la-InitializePreferences.lo:  \
        src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscicore_algo_la-saveCWDInPreferences.lo:  \
+       src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/libscicore_algo_la-sci_tools.lo: src/c/$(am__dirstamp) \
        src/c/$(DEPDIR)/$(am__dirstamp)
 src/c/libscicore_algo_la-getmaxMALLOC.lo: src/c/$(am__dirstamp) \
@@ -2040,6 +2044,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-returnPropertyList.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-returnanan.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-run.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-saveCWDInPreferences.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-sci_mem_alloc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-sci_tools.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscicore_algo_la-scilabmode.Plo@am__quote@
@@ -2698,6 +2703,13 @@ src/c/libscicore_algo_la-InitializePreferences.lo: src/c/InitializePreferences.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscicore_algo_la-InitializePreferences.lo `test -f 'src/c/InitializePreferences.c' || echo '$(srcdir)/'`src/c/InitializePreferences.c
 
+src/c/libscicore_algo_la-saveCWDInPreferences.lo: src/c/saveCWDInPreferences.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscicore_algo_la-saveCWDInPreferences.lo -MD -MP -MF src/c/$(DEPDIR)/libscicore_algo_la-saveCWDInPreferences.Tpo -c -o src/c/libscicore_algo_la-saveCWDInPreferences.lo `test -f 'src/c/saveCWDInPreferences.c' || echo '$(srcdir)/'`src/c/saveCWDInPreferences.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscicore_algo_la-saveCWDInPreferences.Tpo src/c/$(DEPDIR)/libscicore_algo_la-saveCWDInPreferences.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='src/c/saveCWDInPreferences.c' object='src/c/libscicore_algo_la-saveCWDInPreferences.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscicore_algo_la-saveCWDInPreferences.lo `test -f 'src/c/saveCWDInPreferences.c' || echo '$(srcdir)/'`src/c/saveCWDInPreferences.c
+
 src/c/libscicore_algo_la-sci_tools.lo: src/c/sci_tools.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscicore_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscicore_algo_la-sci_tools.lo -MD -MP -MF src/c/$(DEPDIR)/libscicore_algo_la-sci_tools.Tpo -c -o src/c/libscicore_algo_la-sci_tools.lo `test -f 'src/c/sci_tools.c' || echo '$(srcdir)/'`src/c/sci_tools.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscicore_algo_la-sci_tools.Tpo src/c/$(DEPDIR)/libscicore_algo_la-sci_tools.Plo
index ab9e991..4b16888 100644 (file)
@@ -21,6 +21,7 @@
 #include "TerminateHistoryManager.h"
 #include "InitializeHistoryManager.h"
 #include "HistoryManager.h"
+#include "scicurdir.h"
 
 void InitializePreferences()
 {
@@ -81,6 +82,22 @@ void InitializePreferences()
         }
     }
 
+    // Set current directory
+    if (prefs->startup_dir_use)
+    {
+        if (stricmp(prefs->startup_dir_use, "current"))
+        {
+            // Not in cwd
+            if (stricmp(prefs->startup_dir_use, "previous") == 0 && prefs->startup_dir_previous && *prefs->startup_dir_previous)
+            {
+                scichdir(prefs->startup_dir_previous);
+            }
+            else if (stricmp(prefs->startup_dir_use, "default") == 0 && prefs->startup_dir_default && *prefs->startup_dir_default)
+            {
+                scichdir(prefs->startup_dir_default);
+            }
+        }
+    }
 
     clearScilabPreferences();
 }
diff --git a/scilab/modules/core/src/c/saveCWDInPreferences.c b/scilab/modules/core/src/c/saveCWDInPreferences.c
new file mode 100644 (file)
index 0000000..2e7b836
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <stdlib.h>
+
+#include "getScilabPreference.h"
+#include "stricmp.h"
+#include "scicurdir.h"
+#include "MALLOC.h"
+
+void saveCWDInPreferences()
+{
+    const char * keys[] = {"use", "previous"};
+    char ** values = getPrefAttributesValues("//general/body/startup", keys, sizeof(keys) / sizeof(const char *));
+
+    if (values && values[0] && stricmp(values[0], "previous") == 0)
+    {
+        int err;
+        char * cwd = scigetcwd(&err);
+
+        if (!err && cwd && strcmp(cwd, values[1]))
+        {
+            const char * kv[] = {"previous", cwd};
+            setPrefAttributesValues("//general/body/startup", kv, sizeof(kv) / sizeof(const char *));
+            FREE(cwd);
+        }
+    }
+}
diff --git a/scilab/modules/core/src/c/saveCWDInPreferences.h b/scilab/modules/core/src/c/saveCWDInPreferences.h
new file mode 100644 (file)
index 0000000..7a4d461
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2014 - Scilab Enterprises - Calixte DENIZET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef __SAVECWDINPREFERENCES_H__
+#define __SAVECWDINPREFERENCES_H__
+
+void saveCWDInPreferences();
+
+#endif // __SAVECWDINPREFERENCES_H__
index a516501..2f2dacb 100644 (file)
 #include "scilabmode.h"
 #ifndef _MSC_VER
 #include "initConsoleMode.h"
+#include "saveCWDInPreferences.h"
 #endif
 /*--------------------------------------------------------------------------*/
 int ExitScilab(void)
 {
     scilabMode CurrentScilabMode;
 
+    saveCWDInPreferences();
     clearScilabPreferences();
     TerminateCorePart1();
 
index 5629cbd..d8def12 100644 (file)
@@ -2,4 +2,4 @@
 
 
 EXPORTS
-       getAttributesValues
+       getPrefAttributesValues
index d66aa7e..5b58f6a 100644 (file)
@@ -115,7 +115,7 @@ int getProxyValues(char **proxyHost, long *proxyPort, char **proxyUserPwd)
 {
     const char * attrs[] = {"enabled", "host", "port", "user", "password"};
     const unsigned int N = sizeof(attrs) / sizeof(char*);
-    char ** values = getAttributesValues("//web/body/proxy", attrs, N);
+    char ** values = getPrefAttributesValues("//web/body/proxy", attrs, N);
 
     if (!values)
     {
index c9c2837..fd07cf0 100644 (file)
@@ -29,6 +29,9 @@ typedef struct
     const char * format;
     const char * formatWidth;
     const char * language;
+    const char * startup_dir_use;
+    const char * startup_dir_default;
+    const char * startup_dir_previous;
 } ScilabPreferences;
 
 #define HEAPSIZE_XPATH (const xmlChar*)"//general/body/java-heap-memory/@heap-size"
@@ -43,11 +46,15 @@ typedef struct
 #define FORMAT_XPATH (const xmlChar*)"//general/body/environment/@printing-format"
 #define FORMATWIDTH_XPATH (const xmlChar*)"//general/body/environment/@width"
 #define LANGUAGE_XPATH (const xmlChar*)"//general/body/languages/@lang"
+#define STARTUP_DIR_USE_XPATH (const xmlChar*)"//general/body/startup/@use"
+#define STARTUP_DIR_DEFAULT_XPATH (const xmlChar*)"//general/body/startup/@default"
+#define STARTUP_DIR_PREVIOUS_XPATH (const xmlChar*)"//general/body/startup/@previous"
 
 PREFERENCES_SCILAB_IMPEXP const ScilabPreferences * getScilabPreferences(void);
 PREFERENCES_SCILAB_IMPEXP void reloadScilabPreferences(void);
 PREFERENCES_SCILAB_IMPEXP void clearScilabPreferences(void);
-PREFERENCES_SCILAB_IMPEXP char * getAttributeValue(const char * xpath, const char * attribute);
-PREFERENCES_SCILAB_IMPEXP char ** getAttributesValues(const char * xpath, const char ** attributes, const unsigned int attrLen);
+PREFERENCES_SCILAB_IMPEXP char * getPrefAttributeValue(const char * xpath, const char * attribute);
+PREFERENCES_SCILAB_IMPEXP char ** getPrefAttributesValues(const char * xpath, const char ** attributes, const unsigned int attrLen);
+PREFERENCES_SCILAB_IMPEXP void setAttributesValues(const char * xpath, const char ** attributes, const unsigned int kvLen);
 
 #endif // __GETSCILABPREFERENCES_H__
index eb0f6c0..89bc85b 100644 (file)
@@ -58,6 +58,9 @@ void initPrefs()
     scilabPref.format = NULL;
     scilabPref.formatWidth = NULL;
     scilabPref.language = NULL;
+    scilabPref.startup_dir_use = NULL;
+    scilabPref.startup_dir_default = NULL;
+    scilabPref.startup_dir_previous = NULL;
 }
 /*--------------------------------------------------------------------------*/
 void reloadScilabPreferences()
@@ -118,6 +121,18 @@ void clearScilabPreferences()
         {
             FREE((void*)scilabPref.language);
         }
+        if (scilabPref.startup_dir_use)
+        {
+            FREE((void*)scilabPref.startup_dir_use);
+        }
+        if (scilabPref.startup_dir_default)
+        {
+            FREE((void*)scilabPref.startup_dir_default);
+        }
+        if (scilabPref.startup_dir_previous)
+        {
+            FREE((void*)scilabPref.startup_dir_previous);
+        }
         initPrefs();
     }
     isInit = 0;
@@ -150,6 +165,9 @@ void getPrefs()
         scilabPref.format = strdup(getAttribute(doc, xpathCtxt, FORMAT_XPATH));
         scilabPref.formatWidth = strdup(getAttribute(doc, xpathCtxt, FORMATWIDTH_XPATH));
         scilabPref.language = strdup(getAttribute(doc, xpathCtxt, LANGUAGE_XPATH));
+        scilabPref.startup_dir_use = strdup(getAttribute(doc, xpathCtxt, STARTUP_DIR_USE_XPATH));
+        scilabPref.startup_dir_default = strdup(getAttribute(doc, xpathCtxt, STARTUP_DIR_DEFAULT_XPATH));
+        scilabPref.startup_dir_previous = strdup(getAttribute(doc, xpathCtxt, STARTUP_DIR_PREVIOUS_XPATH));
 
         xmlXPathFreeContext(xpathCtxt);
         xmlFreeDoc(doc);
@@ -224,7 +242,7 @@ void getDocAndCtxt(xmlDocPtr * doc, xmlXPathContextPtr * xpathCtxt)
     }
 }
 /*--------------------------------------------------------------------------*/
-char * getAttributeValue(const char * xpath, const char * attribute)
+char * getPrefAttributeValue(const char * xpath, const char * attribute)
 {
     xmlDocPtr doc = NULL;
     xmlXPathContextPtr xpathCtxt = NULL;
@@ -263,21 +281,18 @@ char * getAttributeValue(const char * xpath, const char * attribute)
     return ret;
 }
 /*--------------------------------------------------------------------------*/
-char ** getAttributesValues(const char * xpath, const char ** attributes, const unsigned int attrLen)
+char ** getPrefAttributesValues(const char * xpath, const char ** attributes, const unsigned int attrLen)
 {
     xmlDocPtr doc = NULL;
     xmlXPathContextPtr xpathCtxt = NULL;
     xmlXPathObjectPtr xpathObj = NULL;
     char ** ret = NULL;
-    unsigned int xlen = 0;
 
-    if (!xpath || !attributes)
+    if (!xpath || !attributes || !attrLen)
     {
         return NULL;
     }
 
-    xlen = strlen(xpath);
-
     getDocAndCtxt(&doc, &xpathCtxt);
     if (doc == NULL)
     {
@@ -289,7 +304,7 @@ char ** getAttributesValues(const char * xpath, const char ** attributes, const
     if (xpathObj && xpathObj->nodesetval && xpathObj->nodesetval->nodeMax)
     {
         int i;
-        xmlNode * node = (xmlAttrPtr)xpathObj->nodesetval->nodeTab[0];
+        xmlNode * node = (xmlNode*)xpathObj->nodesetval->nodeTab[0];
         for (i = 0; i < attrLen; i++)
         {
             xmlAttr * attrs = xmlHasProp(node, (const xmlChar *)attributes[i]);
@@ -321,3 +336,75 @@ char ** getAttributesValues(const char * xpath, const char ** attributes, const
 
     return ret;
 }
+/*--------------------------------------------------------------------------*/
+void setPrefAttributesValues(const char * xpath, const char ** kv, const unsigned int kvLen)
+{
+    xmlDocPtr doc = NULL;
+    xmlXPathContextPtr xpathCtxt = NULL;
+    xmlXPathObjectPtr xpathObj = NULL;
+    char * SCIHOME = NULL;
+    char * path = NULL;
+    BOOL bConvert = FALSE;
+    char * shortfilename_xml_conf = NULL;
+
+    if (!xpath || !kv || !kvLen)
+    {
+        return;
+    }
+
+    getDocAndCtxt(&doc, &xpathCtxt);
+    if (doc == NULL)
+    {
+        return;
+    }
+
+    xpathObj = xmlXPathEval((const xmlChar*)xpath, xpathCtxt);
+    if (xpathObj && xpathObj->nodesetval && xpathObj->nodesetval->nodeMax)
+    {
+        int i;
+        xmlNode * node = (xmlNode*)xpathObj->nodesetval->nodeTab[0];
+        for (i = 0; i < kvLen / 2; i++)
+        {
+            xmlAttr * attrs = xmlHasProp(node, (const xmlChar *)kv[2 * i]);
+            if (attrs)
+            {
+                attrs->children->content = xmlStrdup((const xmlChar *)kv[2 * i + 1]);
+            }
+            else
+            {
+                break;
+            }
+        }
+    }
+
+    if (xpathObj)
+    {
+        xmlXPathFreeObject(xpathObj);
+    }
+
+    xmlXPathFreeContext(xpathCtxt);
+
+    // Save
+    xmlThrDefIndentTreeOutput(1);
+
+    SCIHOME = getSCIHOME();
+    path = (char *)MALLOC(strlen(SCIHOME) + strlen(XCONF));
+
+    sprintf(path, XCONF, SCIHOME);
+    FREE(SCIHOME);
+
+    if (FileExist(path))
+    {
+        shortfilename_xml_conf = getshortpathname(path, &bConvert);
+        if (shortfilename_xml_conf)
+        {
+            xmlSaveFormatFile(shortfilename_xml_conf, doc, 2);
+            FREE(shortfilename_xml_conf);
+            shortfilename_xml_conf = NULL;
+        }
+        FREE(path);
+        path = NULL;
+    }
+
+    xmlFreeDoc(doc);
+}