]> granicus.if.org Git - nethack/commitdiff
Clear or copy whole selectionvar
authorPasi Kallinen <paxed@alt.org>
Tue, 23 Aug 2022 11:39:39 +0000 (14:39 +0300)
committerPasi Kallinen <paxed@alt.org>
Tue, 23 Aug 2022 11:39:39 +0000 (14:39 +0300)
src/nhlsel.c
src/sp_lev.c

index 5f5a3b0616d26d6186d19ea0e9cfbf284a4eab62..526920733c44febc0bdbedcff327f2b383ceda09 100644 (file)
@@ -92,8 +92,7 @@ l_selection_push(lua_State *L)
     luaL_getmetatable(L, "selection");
     lua_setmetatable(L, -2);
 
-    sel->wid = tmp->wid;
-    sel->hei = tmp->hei;
+    *sel = *tmp;
     sel->map = dupstr(tmp->map);
     selection_free(tmp, TRUE);
 
@@ -120,9 +119,8 @@ l_selection_clone(lua_State *L)
     tmp = l_selection_check(L, 2);
     if (tmp->map)
         free(tmp->map);
+    *tmp = *sel;
     tmp->map = dupstr(sel->map);
-    tmp->wid = sel->wid;
-    tmp->hei = sel->hei;
     return 1;
 }
 
index e6805c305134d6a5a59d5f6ebc16a2124a662fc7..9f3e3aa674f8826e7e11af65f32be01cf1b9d6f0 100644 (file)
@@ -4381,7 +4381,7 @@ selection_free(struct selectionvar* sel, boolean freesel)
         if (freesel)
             free((genericptr_t) sel);
         else
-            sel->wid = sel->hei = 0;
+            (void) memset((genericptr_t) sel, 0, sizeof *sel);
     }
 }
 
@@ -4390,8 +4390,7 @@ selection_clone(struct selectionvar* sel)
 {
     struct selectionvar *tmps = (struct selectionvar *) alloc(sizeof *tmps);
 
-    tmps->wid = sel->wid;
-    tmps->hei = sel->hei;
+    *tmps = *sel;
     tmps->map = dupstr(sel->map);
 
     return tmps;