]> git.saurik.com Git - redis.git/commitdiff
Merge pull request #726 from yamt/typo
authorSalvatore Sanfilippo <antirez@gmail.com>
Wed, 31 Oct 2012 08:29:04 +0000 (01:29 -0700)
committerSalvatore Sanfilippo <antirez@gmail.com>
Wed, 31 Oct 2012 08:29:04 +0000 (01:29 -0700)
fix a typo in a comment

deps/linenoise/linenoise.c
src/config.h
src/help.h
src/rdb.c
src/rdb.h
src/t_string.c

index 18a15cc45ccb6d739b0ed9f2ed2a5b43e2d5c391..4632f7de81858a2ba40cb283b259535ff8e95576 100644 (file)
@@ -8,34 +8,37 @@
  * Does a number of crazy assumptions that happen to be true in 99.9999% of
  * the 2010 UNIX computers around.
  *
+ * ------------------------------------------------------------------------
+ *
  * Copyright (c) 2010, Salvatore Sanfilippo <antirez at gmail dot com>
  * Copyright (c) 2010, Pieter Noordhuis <pcnoordhuis at gmail dot com>
  *
  * All rights reserved.
- *
+ * 
  * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * 
+ *  *  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
  *
- *   * Redistributions of source code must retain the above copyright notice,
- *     this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above copyright
+ *  *  Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- *   * Neither the name of Redis nor the names of its contributors may be used
- *     to endorse or promote products derived from this software without
- *     specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * ------------------------------------------------------------------------
  *
  * References:
  * - http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
@@ -290,6 +293,8 @@ static int linenoisePrompt(int fd, char *buf, size_t buflen, const char *prompt)
     size_t len = 0;
     size_t cols = getColumns();
     int history_index = 0;
+    size_t old_pos;
+    size_t diff;
 
     buf[0] = '\0';
     buflen--; /* Make sure there is always space for the nulterm */
@@ -465,6 +470,18 @@ up_down_arrow:
         case 12: /* ctrl+l, clear screen */
             linenoiseClearScreen();
             refreshLine(fd,prompt,buf,len,pos,cols);
+            break;
+        case 23: /* ctrl+w, delete previous word */
+            old_pos = pos;
+            while (pos > 0 && buf[pos-1] == ' ')
+                pos--;
+            while (pos > 0 && buf[pos-1] != ' ')
+                pos--;
+            diff = old_pos - pos;
+            memmove(&buf[pos], &buf[old_pos], len-old_pos+1);
+            len -= diff;
+            refreshLine(fd,prompt,buf,len,pos,cols);
+            break;
         }
     }
     return len;
index 617682fcf45247d07ae734f3724cc0a4fde600a5..5e6d2807271cd04266522fcfd8f0f665b61670f2 100644 (file)
 /* Define rdb_fsync_range to sync_file_range() on Linux, otherwise we use
  * the plain fsync() call. */
 #ifdef __linux__
+#include <linux/version.h>
+#include <features.h>
+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+#if (LINUX_VERSION_CODE >= 0x020611 && __GLIBC_PREREQ(2, 6))
+#define HAVE_SYNC_FILE_RANGE 1
+#endif
+#else
+#if (LINUX_VERSION_CODE >= 0x020611)
+#define HAVE_SYNC_FILE_RANGE 1
+#endif
+#endif
+#endif
+
+#ifdef HAVE_SYNC_FILE_RANGE
 #define rdb_fsync_range(fd,off,size) sync_file_range(fd,off,size,SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE)
 #else
 #define rdb_fsync_range(fd,off,size) fsync(fd)
index 406fb224dccc37b44a43745592bbe2e8abf7f52a..1378b8b85d2667101922d897cd1e50a18669e9b4 100644 (file)
@@ -44,6 +44,16 @@ struct commandHelp {
     "Asynchronously save the dataset to disk",
     9,
     "1.0.0" },
+    { "BITCOUNT",
+    "key [start] [end]",
+    "Count set bits in a string",
+    1,
+    "2.6.0" },
+    { "BITOP",
+    "operation destkey key [key ...]",
+    "Perform bitwise operations between strings",
+    1,
+    "2.6.0" },
     { "BLPOP",
     "key [key ...] timeout",
     "Remove and get the first element in a list, or block until one is available",
@@ -59,6 +69,16 @@ struct commandHelp {
     "Pop a value from a list, push it to another list and return it; or block until one is available",
     2,
     "2.2.0" },
+    { "CLIENT KILL",
+    "ip:port",
+    "Kill the connection of a client",
+    9,
+    "2.4.0" },
+    { "CLIENT LIST",
+    "-",
+    "Get the list of client connections",
+    9,
+    "2.4.0" },
     { "CONFIG GET",
     "parameter",
     "Get the value of a configuration parameter",
@@ -111,7 +131,7 @@ struct commandHelp {
     "2.0.0" },
     { "DUMP",
     "key",
-    "Return a serialized verison of the value stored at the specified key.",
+    "Return a serialized version of the value stored at the specified key.",
     0,
     "2.6.0" },
     { "ECHO",
@@ -124,6 +144,11 @@ struct commandHelp {
     "Execute a Lua script server side",
     10,
     "2.6.0" },
+    { "EVALSHA",
+    "sha1 numkeys key [key ...] arg [arg ...]",
+    "Execute a Lua script server side",
+    10,
+    "2.6.0" },
     { "EXEC",
     "-",
     "Execute all commands issued after MULTI",
@@ -575,8 +600,8 @@ struct commandHelp {
     3,
     "1.0.0" },
     { "SRANDMEMBER",
-    "key",
-    "Get a random member from a set",
+    "key [count]",
+    "Get one or multiple random members from a set",
     3,
     "1.0.0" },
     { "SREM",
index 9190ea514cb65ed12af35795003fabade5fd6102..5018473eb938942642631296a015d9ee1b671583 100644 (file)
--- a/src/rdb.c
+++ b/src/rdb.c
@@ -1010,6 +1010,8 @@ void startLoading(FILE *fp) {
 /* Refresh the loading progress info */
 void loadingProgress(off_t pos) {
     server.loading_loaded_bytes = pos;
+    if (server.stat_peak_memory < zmalloc_used_memory())
+        server.stat_peak_memory = zmalloc_used_memory();
 }
 
 /* Loading finished */
index 37f4474564b11b18039f6afeba566aaf709e49dc..1c07994f7cee2fd6eaf0512c05dfec9dd5dd6ae0 100644 (file)
--- a/src/rdb.h
+++ b/src/rdb.h
@@ -62,9 +62,6 @@
 #define REDIS_RDB_OPCODE_SELECTDB   254
 #define REDIS_RDB_OPCODE_EOF        255
 
-/* Test if a type is an opcode. */
-#define rdbIsOpcode(t) (t >= 253 && t <= 255)
-
 int rdbSaveType(rio *rdb, unsigned char type);
 int rdbLoadType(rio *rdb);
 int rdbSaveTime(rio *rdb, time_t t);
index 1e29a61334791624272e02a64506c0c43903412a..ba42796130c70af0476e882be69b7119528f17b3 100644 (file)
@@ -26,7 +26,7 @@ void setGenericCommand(redisClient *c, int nx, robj *key, robj *val, robj *expir
         if (unit == UNIT_SECONDS) milliseconds *= 1000;
     }
 
-    if (lookupKeyWrite(c->db,key) != NULL && nx) {
+    if (nx && lookupKeyWrite(c->db,key) != NULL) {
         addReply(c,shared.czero);
         return;
     }