version update, fixes for 32bit cmplr warns
authorGood Guy <good1.2guy@gmail.com>
Tue, 4 Oct 2016 00:25:10 +0000 (18:25 -0600)
committerGood Guy <good1.2guy@gmail.com>
Tue, 4 Oct 2016 00:25:10 +0000 (18:25 -0600)
21 files changed:
cinelerra-5.1/PKGBUILD
cinelerra-5.1/cinelerra.spec
cinelerra-5.1/cinelerra/amodule.C
cinelerra-5.1/cinelerra/attachmentpoint.C
cinelerra-5.1/cinelerra/cutads.C
cinelerra-5.1/cinelerra/dcraw.c
cinelerra-5.1/cinelerra/ffmpeg.C
cinelerra-5.1/cinelerra/filempeg.C
cinelerra-5.1/cinelerra/framecache.C
cinelerra-5.1/cinelerra/garbage.C
cinelerra-5.1/cinelerra/playback3d.C
cinelerra-5.1/cinelerra/swindow.C
cinelerra-5.1/cinelerra/vattachmentpoint.C
cinelerra-5.1/cinelerra/virtualvnode.C
cinelerra-5.1/cinelerra/vmodule.C
cinelerra-5.1/db/utils/cpdb.C
cinelerra-5.1/db/utils/root_info.C
cinelerra-5.1/debian/changelog
cinelerra-5.1/debian/control
cinelerra-5.1/guicast/bcsignals.C
cinelerra-5.1/plugins/overlay/overlay.C

index eed0cb48daa8a823fe62d673b9c17460d48fd78a..f2ac338971d7b30769caa8baf25cc459fdfa78a0 100644 (file)
@@ -1,7 +1,7 @@
 # Maintainer: goodguy <lists.cinelerra-cv.org>
 pkgname=cin
 pkgver=5.1
-pkgrel=20160831
+pkgrel=20161002
 pkgdesc="Cinelerra git://git.cinelerra-cv.org/goodguy/cinelerra.git ($pkgrel)"
 arch=('x86_64')
 url="http://www.cinelerra-cv.org"
index 5b302e0807cc0ab54fa02d8b1cd8e7a3755684b9..bd2c2be0c3fa72d0866c59e03e3c9335fe26ea6f 100644 (file)
@@ -1,4 +1,4 @@
-%define ver 20160831
+%define ver 20161002
 Summary: Multimedia Editing and construction
 Name: cinelerra
 Version: 5.1
index bd45a39ca50af60a8cd6a9c5f8eb5b4c906a3204..9111641189080e99b52f19d862c55231d1d8610d 100644 (file)
@@ -268,7 +268,7 @@ nested_edl);
 if(debug) printf("AModule::import_samples %d\n", __LINE__);
 
        this->channel = edit->channel;
-if(debug) printf("AModule::import_samples %d speed_fragment_len=%ld\n", 
+if(debug) printf("AModule::import_samples %d speed_fragment_len=%jd\n", 
 __LINE__,
 speed_fragment_len);
 
@@ -532,7 +532,7 @@ asset->sample_rate);
                        {
 
 if(debug)
-printf("AModule::import_samples %d channel=%d start_source=%ld len=%d\n", __LINE__, edit->channel, start_source, (int)speed_fragment_len);
+printf("AModule::import_samples %d channel=%d start_source=%jd len=%d\n", __LINE__, edit->channel, start_source, (int)speed_fragment_len);
                                file->set_audio_position(start_source);
                                file->set_channel(edit->channel);
                                result = file->read_samples(speed_buffer, speed_fragment_len);
index 1d2946132d87df9ae6aebcc8d090c849a331452e..362a5e1f43e88af652578204398d1a180b11ce3c 100644 (file)
@@ -62,7 +62,8 @@ int AttachmentPoint::reset_parameters()
 
 void AttachmentPoint::reset_status()
 {
-       if(!(void *)this) printf("AttachmentPoint::reset_status NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::reset_status NULL\n");
        start_position = 0;
        len = 0;
        sample_rate = 0;
@@ -79,7 +80,8 @@ int AttachmentPoint::identical(AttachmentPoint *old)
 
 int AttachmentPoint::render_init()
 {
-       if(!(void *)this) printf("AttachmentPoint::render_init NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::render_init NULL\n");
        if(plugin_server && plugin->on)
        {
 // Start new plugin servers if the number of nodes changed.
@@ -155,7 +157,8 @@ void AttachmentPoint::render_stop()
 
 int AttachmentPoint::attach_virtual_plugin(VirtualNode *virtual_plugin)
 {
-       if(!(void *)this) printf("AttachmentPoint::attach_virtual_plugin NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::attach_virtual_plugin NULL\n");
        int buffer_number = 0;
 
        if(plugin_server && plugin->on)
@@ -183,7 +186,8 @@ int AttachmentPoint::attach_virtual_plugin(VirtualNode *virtual_plugin)
 
 int AttachmentPoint::multichannel_shared(int search_new)
 {
-       if(!(void *)this) printf("AttachmentPoint::multichannel_shared NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::multichannel_shared NULL\n");
        if(search_new)
        {
                if(new_virtual_plugins.total &&
@@ -201,7 +205,8 @@ int AttachmentPoint::multichannel_shared(int search_new)
 
 int AttachmentPoint::singlechannel()
 {
-       if(!(void *)this) printf("AttachmentPoint::singlechannel NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::singlechannel NULL\n");
        if(plugin_server && !plugin_server->multichannel) return 1;
        return 0;
 }
@@ -210,7 +215,8 @@ int AttachmentPoint::singlechannel()
 void AttachmentPoint::render_gui(void *data, PluginServer *server)
 {
 //printf("AttachmentPoint::render_gui 1 %p %p\n", server, plugin_servers.get(0));
-       if(!(void *)this) printf("AttachmentPoint::render_gui 1 NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::render_gui 1 NULL\n");
 
 // Discard if not 1st plugin server, so single channel plugins don't get double GUI updates
        if(server != plugin_servers.get(0)) return;
@@ -221,7 +227,8 @@ void AttachmentPoint::render_gui(void *data, PluginServer *server)
 
 void AttachmentPoint::render_gui(void *data, int size, PluginServer *server)
 {
-       if(!(void *)this) printf("AttachmentPoint::render_gui 2 NULL\n");
+       void *This = this;
+       if(!This) printf("AttachmentPoint::render_gui 2 NULL\n");
 
 // Discard if not 1st plugin server, so single channel plugins don't get double GUI updates
        if(server != plugin_servers.get(0)) return;
@@ -239,7 +246,8 @@ int AttachmentPoint::gui_open()
 
 int AttachmentPoint::dump(FILE *fp)
 {
-       if((void *)this)
+       void *This = this;
+       if(This)
        {
                fprintf(fp,"    Attachmentpoint this=%p virtual_plugins=%d\n", this, new_virtual_plugins.total);
                if(plugin_server) plugin_server->dump(fp);
index 595b375c2f1d1bc8e7b70e1d26bbd218a131b2b5..ac58d56af90e5323c99d9b8525002879e485819b 100644 (file)
@@ -813,7 +813,7 @@ cut_clip(Src &src, Dele *del, Dele *next)
        // report ranges
        clip_start = start_time - video.origin();
        clip_end = end_time - video.origin();
-       printf(" %f-%f (%f), %f-%f %ld-%ld",
+       printf(" %f-%f (%f), %f-%f %jd-%jd",
                start_time, end_time, end_time-start_time, clip_start, clip_end,
                video.frame_count(clip_start), video.frame_count(clip_end));
        return 0;
index 9543ae84f31162d1167c99bbeaad9c0c5672a9d6..89632b686b55a2464adf91a54123e4d44791050e 100644 (file)
@@ -968,12 +968,13 @@ void CLASS canon_sraw_load_raw()
   ip = (short (*)[4]) image;
   rp = ip[0];
   for (row=0; row < height; row++, ip+=width) {
-    if (row & (jh.sraw >> 1))
+    if (row & (jh.sraw >> 1)) {
       for (col=0; col < width; col+=2)
        for (c=1; c < 3; c++)
          if (row == height-1)
               ip[col][c] =  ip[col-width][c];
          else ip[col][c] = (ip[col-width][c] + ip[col+width][c] + 1) >> 1;
+    }
     for (col=1; col < width; col+=2)
       for (c=1; c < 3; c++)
        if (col == width-1)
index dbeb96a898715366c8eb44a704d6eda2c717277e..7849148e58938afa42e9a07859fc0ba17693257c 100644 (file)
@@ -2538,7 +2538,7 @@ int FFMPEG::scan(IndexState *index_state, int64_t *scan_position, int *canceled)
                                int64_t pos = index_state->pos(ch);
                                if( pos != aud->curr_pos ) {
 if( abs(pos-aud->curr_pos) > 1 )
-printf("audio%d pad %ld %ld (%ld)\n", aud->idx, pos, aud->curr_pos, pos-aud->curr_pos);
+printf("audio%d pad %jd %jd (%jd)\n", aud->idx, pos, aud->curr_pos, pos-aud->curr_pos);
                                        index_state->pad_data(ch, nch, aud->curr_pos);
                                }
                                av_frame_unref(frame);
index 54b006fc46eabda718bb573092bbb12a1030e2c7..44499f3b6358dea0d7187c1bc6d954e1f727fc37 100644 (file)
@@ -159,7 +159,7 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len)
                cp += snprintf(cp,ep-cp, _("file path:%s\n"), path);
        int64_t bytes = mpeg3_get_bytes(fd);
        char string[BCTEXTLEN];
-       sprintf(string,"%ld",bytes);
+       sprintf(string,"%jd",bytes);
        Units::punctuate(string);
        cp += snprintf(cp,ep-cp, _("size: %s"), string);
 
@@ -192,7 +192,7 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len)
                cp += snprintf(cp,ep-cp, _("  v%d %s %dx%d"), vtrk, cmodel, width, height);
                double frame_rate = mpeg3_frame_rate(fd, vtrk);
                int64_t frames = mpeg3_video_frames(fd, vtrk);
-               cp += snprintf(cp,ep-cp, _(" (%5.2f), %ld frames"), frame_rate, frames);
+               cp += snprintf(cp,ep-cp, _(" (%5.2f), %jd frames"), frame_rate, frames);
                if( frame_rate > 0 ) {
                        double secs = (double)frames / frame_rate;
                        cp += snprintf(cp,ep-cp, _(" (%0.3f secs)"),secs);
@@ -208,10 +208,10 @@ void FileMPEG::get_info(char *title_path, char *path, char *text, int len)
                int sample_rate = mpeg3_sample_rate(fd, atrk);
                cp += snprintf(cp,ep-cp, _(" ch%d (%d)"), channels, sample_rate);
                int64_t samples = mpeg3_audio_samples(fd, atrk);
-               cp += snprintf(cp,ep-cp, " %ld",samples);
+               cp += snprintf(cp,ep-cp, " %jd",samples);
                int64_t nudge = mpeg3_get_audio_nudge(fd, atrk);
                *cp++ = nudge >= 0 ? '+' : (nudge=-nudge, '-');
-               cp += snprintf(cp,ep-cp, _("%ld samples"),nudge);
+               cp += snprintf(cp,ep-cp, _("%jd samples"),nudge);
                if( sample_rate > 0 ) {
                        double secs = (double)(samples+nudge) / sample_rate;
                        cp += snprintf(cp,ep-cp, _(" (%0.3f secs)"),secs);
index afb149f0f885757cbba9bdfa00167e3e01b1aa27..26ddde6fddb478f1e07e189074c66a3c7ecdd149 100644 (file)
@@ -302,7 +302,7 @@ void FrameCache::dump()
        printf("FrameCache::dump 1 %d\n", total());
        FrameCacheItem *item = (FrameCacheItem *)first;
        while( item ) {
-               printf("  position=%jd frame_rate=%f age=%d size=%jd\n", 
+               printf("  position=%jd frame_rate=%f age=%d size=%ld\n", 
                        item->position, item->frame_rate, item->age,
                        item->data->get_data_size());
                item = (FrameCacheItem*)item->next;
index 8b15d8b68cb148933119b32e8d5b040a56f42a86..c964ddce3545efc3eb88fc062602f1f061011572 100644 (file)
@@ -58,7 +58,8 @@ void Garbage::add_user()
 
 int Garbage::remove_user()
 {
-       if(!(void *)this) return 0;
+       void *This = this;
+       if(!This) return 0;
 
 //printf("Garbage::remove_user %d lock=%p users=%d\n", __LINE__, lock, users);
        if(users <= 0) {
index c2e015e24d5fc653d8fb0041682c821efb077589..89b52dccca47b32eb37359ec35d115053aa5b8ec 100644 (file)
@@ -155,8 +155,8 @@ static const char *blend_##FN##_frag = \
        "void main() {\n" \
        "       vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n" \
        "       vec4 result;\n" \
-       "       result.rgb = "SS(COLOR_##FN(1.0, gl_FragColor.rgb, gl_FragColor.a, canvas.rgb, canvas.a))";\n" \
-       "       result.a = "SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a))";\n" \
+       "       result.rgb = " SS(COLOR_##FN(1.0, gl_FragColor.rgb, gl_FragColor.a, canvas.rgb, canvas.a)) ";\n" \
+       "       result.a = " SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a)) ";\n" \
        "       gl_FragColor = mix(canvas, result, alpha);\n" \
        "}\n"
 
@@ -168,10 +168,10 @@ static const char *blend_##FN##_frag = \
        "void main() {\n" \
        "       vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n" \
        "       vec4 result;\n" \
-       "       result.r = "SS(COLOR_##FN(1.0, gl_FragColor.r, gl_FragColor.a, canvas.r, canvas.a))";\n" \
-       "       result.g = "SS(COLOR_##FN(1.0, gl_FragColor.g, gl_FragColor.a, canvas.g, canvas.a))";\n" \
-       "       result.b = "SS(COLOR_##FN(1.0, gl_FragColor.b, gl_FragColor.a, canvas.b, canvas.a))";\n" \
-       "       result.a = "SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a))";\n" \
+       "       result.r = " SS(COLOR_##FN(1.0, gl_FragColor.r, gl_FragColor.a, canvas.r, canvas.a)) ";\n" \
+       "       result.g = " SS(COLOR_##FN(1.0, gl_FragColor.g, gl_FragColor.a, canvas.g, canvas.a)) ";\n" \
+       "       result.b = " SS(COLOR_##FN(1.0, gl_FragColor.b, gl_FragColor.a, canvas.b, canvas.a)) ";\n" \
+       "       result.a = " SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a)) ";\n" \
        "       result = clamp(result, 0.0, 1.0);\n" \
        "       gl_FragColor = mix(canvas, result, alpha);\n" \
        "}\n"
index 97b9144d716c462e5a60cafce00339fc7aa002a9..a4315b50febf1e877dfb3bab7bf5fb46c257315b 100644 (file)
@@ -817,11 +817,11 @@ void SWindowGUI::load_script(FILE *fp)
        char value[64];
        sprintf(value,"%ld",ftell(fp));
        script_filesz->update(value);
-       sprintf(value,"%ld",script_line_no);
+       sprintf(value,"%jd",script_line_no);
        script_lines->update(value);
        sprintf(value,"%d",script.size());
        script_entries->update(value);
-       sprintf(value,"%ld",script_text_lines);
+       sprintf(value,"%jd",script_text_lines);
        script_texts->update(value);
        int hw = 2*script_scroll->get_h();
        script_scroll->update_length(script.size(), script_entry_no, hw, 0);
@@ -863,7 +863,7 @@ void SWindowGUI::save_spumux_data()
                                int64_t end = start + sedit->length;
                                char *text = sedit->get_text();
                                if( *text ) {
-                                       fprintf(fp, "{%ld}{%ld}%s\n", start, end-1, text);
+                                       fprintf(fp, "{%jd}{%jd}%s\n", start, end-1, text);
                                }
                                start = end;
                        }
index ce787f83a65ddc725f1d59328e347c023ed5e4c5..85250b565c831d3fa032da5f46f86bc907481a53 100644 (file)
@@ -46,7 +46,8 @@ VAttachmentPoint::~VAttachmentPoint()
 
 void VAttachmentPoint::delete_buffer_vector()
 {
-       if(!(void *)this) printf("VAttachmentPoint::delete_buffer_vector NULL\n");
+       void *This = this;
+       if(!This) printf("VAttachmentPoint::delete_buffer_vector NULL\n");
        if(buffer_vector)
        {
                for(int i = 0; i < virtual_plugins.total; i++)
@@ -58,7 +59,8 @@ void VAttachmentPoint::delete_buffer_vector()
 
 void VAttachmentPoint::new_buffer_vector(int width, int height, int colormodel)
 {
-       if(!(void *)this) printf("VAttachmentPoint::new_buffer_vector NULL\n");
+       void *This = this;
+       if(!This) printf("VAttachmentPoint::new_buffer_vector NULL\n");
        if(buffer_vector &&
                (width != buffer_vector[0]->get_w() ||
                height != buffer_vector[0]->get_h() ||
@@ -94,7 +96,8 @@ void VAttachmentPoint::render(VFrame *output,
        int debug_render,
        int use_opengl)
 {
-       if(!(void *)this) printf("VAttachmentPoint::render NULL\n");
+       void *This = this;
+       if(!This) printf("VAttachmentPoint::render NULL\n");
        if(!plugin_server || !plugin->on) return;
 
        if(debug_render)
index e3c69f1e755086abc84c5a011bbce0798e2c4386..f8c032a16715a02b0fb1ea4cb15a1a36b25e2bb4 100644 (file)
@@ -406,10 +406,10 @@ int VirtualVNode::render_projector(VFrame *input, VFrame *output,
                if(out_x2 > out_x1 && out_y2 > out_y1 && 
                        in_x2 > in_x1 && in_y2 > in_y1)
                {
-                       IntAuto *mode_keyframe = 0;
-                       mode_keyframe = 
+                       Auto *auto_keyframe = 0;
+                       IntAuto *mode_keyframe =
                                (IntAuto*)track->automation->autos[AUTOMATION_MODE]->get_prev_auto(
-                                       start_position_project, PLAY_FORWARD, (Auto* &)mode_keyframe);
+                                       start_position_project, PLAY_FORWARD, auto_keyframe);
 
                        int mode = mode_keyframe->value;
 
index 6d69dc3c454acad0f656caed4f423ecd79da85f2..d9e1cbc995a7d4d462bce2b99ced1ba13ba9b2c4 100644 (file)
@@ -976,7 +976,7 @@ int VModule::render(VFrame *output,
 //printf("VModule::render %d %p %ld %d\n", __LINE__, current_edit, start_position_project, direction);
 
        if(debug_render)
-               printf("    VModule::render %d %d %ld %s transition=%p opengl=%d current_edit=%p output=%p\n",
+               printf("    VModule::render %d %d %jd %s transition=%p opengl=%d current_edit=%p output=%p\n",
                        __LINE__,
                        use_nudge,
                        start_position_project,
index 8e966e18373143754f1ea192877a56cd17a610f0..7f9fc67dd19f73c82400419f0982096ff9d00cff 100644 (file)
@@ -75,7 +75,7 @@ int main(int ac, char **av)
     time_t t = (time_t) idb.clip_views.Access_time();
     long dt = st.tv_sec - t;
     // 3 weeks + access count days
-    if( dt < 3*7*24*60*60 + idb.clip_views.Access_count()*24*60*60 )
+    if( dt < 3*7*24*60*60 + (long)(idb.clip_views.Access_count()*24*60*60) )
       continue;
     del_clip_set(&idb, idb.clip_set.id());
   }
index 93a2125f728ebebf3472c86ee46a7cd29a68630e..c20a24bb2db0cb000ad6d50cd3f93df74fcebb42 100644 (file)
@@ -27,8 +27,8 @@ int main(int ac, char **av)
   printf(" root_info_id = %d\n",ip->root_info_id);
   printf(" index_info_id = %d\n",ip->index_info_id);
   printf(" page_info_id = %d\n",ip->page_info_id);
-  printf(" oldness = %ld\n",ip->oldness);
-  printf(" newness = %ld\n",ip->newness);
+  printf(" oldness = %jd\n",ip->oldness);
+  printf(" newness = %jd\n",ip->newness);
   return 0;
 }
 
index 1fb432fb40feb532b24f4838624bcfba04da5cb1..d60c76250da76b4ce2c68d068bcb93d831e66907 100644 (file)
@@ -1,4 +1,4 @@
-cin (1:5.1.20160831) unstable; urgency=low
+cin (1:5.1.20161002) unstable; urgency=low
 
   [ guy goode ]
 
index c29c74a296a7a555366d906102947926daf403c6..4ab35e231ddf6aefbe1433481e8deee56b1f5989 100644 (file)
@@ -1,7 +1,7 @@
 Source: cin
 Section: video
 Priority: optional
-Standards-Version: 5.1.20160831
+Standards-Version: 5.1.20161002
 Maintainer: mailing list <cinelerra@lists.cinelerra-cv.org>
 Homepage: http://www.cinelerra-cv.org/
 Build-Depends: nasm, yasm, g++, gdb, build-essential, e2fsprogs,
index bb3e59580e2e2ea9abacf378f5b5640e052c2957..e7c14074e9715ac69e4e2eae408f8f605fd9b08c 100644 (file)
@@ -510,7 +510,8 @@ int BC_Signals::x_error_handler(Display *display, XErrorEvent *event)
        char string[1024];
        XGetErrorText(event->display, event->error_code, string, 1024);
        fprintf(stderr, "BC_Signals::x_error_handler: error_code=%d opcode=%d,%d id=0x%jx %s\n",
-               event->error_code, event->request_code, event->minor_code, event->resourceid, string);
+               event->error_code, event->request_code, event->minor_code,
+               (int64_t)event->resourceid, string);
        return 0;
 }
 
index 359867fdd2fe7720efb25013ec82bd5dcd852289..a8cc7c8012144a617ed0a665318d1d87617f893f 100644 (file)
@@ -459,15 +459,15 @@ int Overlay::handle_opengl()
 
 #define GL_STD_FRAG(FN) static const char *blend_##FN##_frag = \
        "       vec4 result;\n" \
-       "       result.rgb = "SS(COLOR_##FN(1.0, src_color.rgb, src_color.a, dst_color.rgb, dst_color.a))";\n" \
-       "       result.a = "SS(ALPHA_##FN(1.0, src_color.a, dst_color.a))";\n" \
+       "       result.rgb = " SS(COLOR_##FN(1.0, src_color.rgb, src_color.a, dst_color.rgb, dst_color.a)) ";\n" \
+       "       result.a = " SS(ALPHA_##FN(1.0, src_color.a, dst_color.a))";\n" \
 
 #define GL_VEC_FRAG(FN) static const char *blend_##FN##_frag = \
        "       vec4 result;\n" \
-       "       result.r = "SS(COLOR_##FN(1.0, src_color.r, src_color.a, dst_color.r, dst_color.a))";\n" \
-       "       result.g = "SS(COLOR_##FN(1.0, src_color.g, src_color.a, dst_color.g, dst_color.a))";\n" \
-       "       result.b = "SS(COLOR_##FN(1.0, src_color.b, src_color.a, dst_color.b, dst_color.a))";\n" \
-       "       result.a = "SS(ALPHA_##FN(1.0, src_color.a, dst_color.a))";\n" \
+       "       result.r = " SS(COLOR_##FN(1.0, src_color.r, src_color.a, dst_color.r, dst_color.a)) ";\n" \
+       "       result.g = " SS(COLOR_##FN(1.0, src_color.g, src_color.a, dst_color.g, dst_color.a)) ";\n" \
+       "       result.b = " SS(COLOR_##FN(1.0, src_color.b, src_color.a, dst_color.b, dst_color.a)) ";\n" \
+       "       result.a = " SS(ALPHA_##FN(1.0, src_color.a, dst_color.a)) ";\n" \
        "       result = clamp(result, 0.0, 1.0);\n" \
 
 #undef mabs