# HG changeset patch
# User Igor Chubin <igor@chub.in>
# Date 1273169120 -10800
# Node ID 190d4ac6b07cf63208fed4e79c054cde3cb331cf
# Parent  23f949c03f95a727aff931c93c66e2030a5f910c
-m and -n switches

diff -r 23f949c03f95 -r 190d4ac6b07c new-words.sh
--- a/new-words.sh	Wed Apr 28 21:00:38 2010 +0300
+++ b/new-words.sh	Thu May 06 21:05:20 2010 +0300
@@ -13,6 +13,8 @@
     -h          print this screen
     -k          put higher words that are similar to the known words (only for English)
     -l lang     override language settings
+    -n          non-interactive mode (don't run vi)
+    -m          don't add marks (and don't save marks added by user)
     -s          show the text statistics (percentage of known words and so on) and exit
 
 The language of the text can be specified also
@@ -37,6 +39,9 @@
 export ORIGINAL_TEXT=`mktemp /tmp/new-words-XXXXXXXXXX-orig`
 editor=${EDITOR:-vim}
 
+#----------------------------------------------------
+# command line options processing
+
 LANGUAGE=en
 my_name="`echo $0 | sed s@.*/@@ | sed s/-.*// `"
 if echo "$1" | grep -q http://...wikipedia.org/wiki/
@@ -67,6 +72,22 @@
     shift
 fi
 
+DONT_ADD_MARKS=NO
+if [ "$1" = "-m" ]
+then
+    DONT_ADD_MARKS=YES
+    shift
+fi
+
+NON_INTERACTIVE_MODE=NO
+if [ "$1" = "-n" ]
+then
+    NON_INTERACTIVE_MODE=YES
+    shift
+fi
+
+#----------------------------------------------------
+
 get_words()
 {
 tr ' ' '\n' | sed 's/--/ /g' \
@@ -341,7 +362,7 @@
         }
     }
 }
-if (open(NOTES, $ENV{NOTES_FILE})) {
+if (($ENV{DONT_ADD_MARKS} ne "YES") and open(NOTES, $ENV{NOTES_FILE})) {
     @lines=<NOTES>;
     close(NOTES);
 
@@ -365,6 +386,7 @@
 PERL_SCRIPT
     [ -e "$NOTES_FILE" ] || touch "$NOTES_FILE"
     export NOTES_FILE
+    export DONT_ADD_MARKS
     perl $PERL_SCRIPT_TEMP_NAME "$1"
     rm $PERL_SCRIPT_TEMP_NAME
 }
@@ -395,8 +417,11 @@
 if [ "$STAT_ONLY" = "YES" ]
 then
     cat "$TEMP1"
+elif [ "$NON_INTERACTIVE_MODE" = "YES" ]
+then
+    cat "$TEMP1"
 else
-    add_marks "$TEMP2"
+    [ "$DONT_ADD_MARKS" = "YES" ] || add_marks "$TEMP2"
     if [ "$editor" = vim ]
     then
         vim -c 'set keywordprg='"$LANGUAGE" -c 'set iskeyword=@,48-57,/,.,-,_,+,,,#,$,%,~,=' "$TEMP2" < /dev/tty > /dev/tty